Always use version from merged branch on conflicts

北慕城南 提交于 2019-11-27 14:17:17

问题


Currently I am working in a feature branch that will soon be merged back into master. I recently tried just that and had some merge conflicts, which I had to fix manually.

So, is it possible to tell git to always use the version from the merged branch in order to avoid merge conflicts beforehand? In this case I fixed the conflicts manually but always chose the version from the merged branch, so this would save me some tedious work.


回答1:


You can do exactly this in git with the following command, assuming that feature is the name of your feature branch:

git merge -s recursive -X theirs feature

This says to use the "recursive" merge strategy, but with the "theirs" option. This means that when there is a conflict, it will be automatically resolved by taking the version of the hunk from the feature branch, not your current branch. (Note that this is completely different from the "theirs" merge strategy, which has now been removed from git.)

This feature was introduced in git v1.7.0.




回答2:


You can't use the recursive "ours" strategy. It would omit your changes that didn't conflict.

You could script getting the file names of the conflicted files, and do a git checkout --ours -- filename followed by a git add filename.

If you're getting the same conflicts over and over, turn on rerere and that may be enough so you don't have to resolve the conflicts.

Hope this helps.



来源:https://stackoverflow.com/questions/6160214/always-use-version-from-merged-branch-on-conflicts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!