我想强制git使用(某种)3路冲突解决方案始终合并。而且,我想这样做是为了能够选择单行。
目前我正在合并两个分支机构。但是,如果可能的话,即使合并多个分支,我也想知道如何执行此任务。
答案 0 :(得分:2)
Git默认尝试进行三向合并(2个头的recursive
策略,3个头的octopus
策略)。
如果您想在手动合并时查看 3路分辨率选项,请尝试将merge.conflictstyle
配置选项设置为diff3
。
(有关该选项的详细信息,请参阅git-merge
man page的“配置”部分。)
答案 1 :(得分:0)
博文“Five advanced Git merge techniques”确实提供了有关diff3设置的更多详细信息:
使用
git config --global merge.conflictstyle diff3
解决diff3冲突 diff3冲突样式在新的|||||||
标记和=======
标记之间添加了一个额外的部分,表示:
- 该部分的原始内容,
- 上面的更改和
- 他们(正在合并的分支)在下面改变。
即使没有差异工具,命令git show
也可以提供帮助:
当您在合并中时,您可以使用特殊的
:N:
语法,其中N
是一个数字,以自动选择其中一个合并父项。
1
选择公共基本提交(较低版本),2
选择您的版本(“mine
”)和3
选择他们的版本(更高版本)。 因此
git show :3:foobar.txt
显示foobar.txt
的上游版本。