git如何解决冲突

2025-10-19 20:15:13

1、通用设置建议

为了设置 Git 使其能正确合并,我们先开始做一些简单的配置。

1. 设置建议

当遇到冲突时,可以在命令行或者其他可视化工具中输入“git mergetool”来初始化合并活动。在“.gitconfig”中用“merge.tool”变量来设置 Git 中自己喜欢的冲突解决软件,比如用 KDiff3 的可能会这样填写”.gitconfig” 的 merge 部分:

git如何解决冲突

2、2. 在冲突标记中显示(分支)共同的祖先

用下面的设置来改进冲突标记使其也显示(分支)共同祖先(感谢罗宾·斯托克和休·吉登斯):

git如何解决冲突

3、合并时使用“耐心”算法

如果文件内容很长(比如一个 XML文件)、冲突很多或者两个版本很不一致时,试着用下面的命令再次合并:

git如何解决冲突

4、当你需要单个文件的历史信息时

除非使用像 SourceTree 一样的可视化工具来弄清到底对一个文件做过什么,不然你可以使用:

git如何解决冲突

5、处理过程示例

有几个同事分享了他们手动处理的过程,比如詹森·欣奇描述了他的处理流程:

从手头的合并开始:

git如何解决冲突

git如何解决冲突

6、IntelliJ IDEA 冲突解决工具

IntelliJ IDEA 是很多 Atlassian 工作人员使用的 IDE 。很多人使用它内建的冲突解决工具来处理冲突,它提供了三个面板来分析:本地、远程和合并结果:

git如何解决冲突

7、KDiff3

KDiff3 是 KDE 产品系列的一部分,并且在我们内部调查时提到过几次

git如何解决冲突

8、P4Merge

SourceTree 的作者斯蒂夫·斯特里廷和其他几个同事使用 P4Merge 来执行合并操作。P4Merge 是免费的可视化工具,它具有四个面板而不是其他工具提供的三个,显示了”base“、”local“、”remote“和”merge result“。

git如何解决冲突

9、meld 

meld 是用 GTK+ 和 Python 开发的,也是已经存在了很久的工具,被提到了几次。

git如何解决冲突

10、 tig for status + diff

更多喜欢终端的人使用 tig (我们之前写过 tig 的一篇介绍),再加上 “ git diff ”。

git如何解决冲突

11、OS X 下的 FileMerge 即 opendiff

在长长的建议列表里,有几个开发者提到了 OS X 下原生的“opendiff”工具,或者叫做“FileMerge”。

git如何解决冲突

12、diffmerge

我并不知道 diffmerge 这个工具,不过在列表里也被提到了。

git如何解决冲突

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢