Is there any way to specify to git to automatically resolve the conflicts for a pack of files by taking the remote version for each of them? For instance, to take the remote version of each files in a certain directory?
+5
A:
git-merge seems to support only the "ours" strategy, where the result of a merge is the local version. And that only for the whole tree.
If you enter a conflicted state while doing a merge, you can use git-checkout's --theirs
with a path to retrieve files from the index.
Finally you can git-reset to force parts of the tree to a specific commit.
David Schmitt
2009-02-09 15:49:16
10x David for the tip. It seems that git-checkout does the trick. Unfortunately, the --ours|--theirs options are not supported by my version of git :( seems like I have to do some updating...
2009-02-09 17:57:16
If there is no --ours|--theirs option to git-checkout, you can use 'git show :2:full_path > file' for --ours (stage #2), and 'git show :3:full_path > file' for --theirs (stage #3). Or use 'git checkout-index --stage=2|3 -- file...' plumbing
Jakub Narębski
2009-02-10 21:52:22
thanks for the tip, this was really very, very helpful!
Geoff Hutchison
2010-02-06 02:52:15