【发布时间】:2010-10-06 23:28:15
【问题描述】:
我想强制 git 总是 使用(某种)3 路冲突解决方案进行合并。此外,我想做到能够选择单行。
目前我正在合并两个分支。但是,如果可能的话,我想知道如何在合并多个分支时执行此任务。
【问题讨论】:
标签: git merge lines-of-code
我想强制 git 总是 使用(某种)3 路冲突解决方案进行合并。此外,我想做到能够选择单行。
目前我正在合并两个分支。但是,如果可能的话,我想知道如何在合并多个分支时执行此任务。
【问题讨论】:
标签: git merge lines-of-code
Git 默认尝试进行 3 路合并(recursive 策略用于 2 个头,octopus 策略用于 3 个以上头)。
如果您想在手动合并时查看三向分辨率选项,请尝试将 merge.conflictstyle 配置选项设置为 diff3。
(有关该选项的详细信息,请参阅git-merge man page 的配置部分。)
【讨论】:
博文“Five advanced Git merge techniques”确实提供了有关 diff3 设置的更多详细信息:
使用
git config --global merge.conflictstyle diff3解决 diff3 冲突。
diff3 冲突样式在新的|||||||标记和=======标记之间增加了一个额外的部分,表示:
- 该部分的原始内容,
- 上面的更改和
- 他们的(被合并的分支)在下面发生了变化。
即使没有 diff 工具,命令 git show 也可以提供帮助:
当您在合并中时,您可以使用特殊的
:N:语法(其中N是一个数字)来自动选择一个合并父级。
1 选择公共基础提交(较低版本),2 选择您的版本(“mine”),然后3 选择他们的版本(更高版本)。 所以
git show :3:foobar.txt显示了foobar.txt的上游版本。
【讨论】: