views:

1064

answers:

1

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
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...
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
thanks for the tip, this was really very, very helpful!
Geoff Hutchison