git如何解决冲突
1、通用设置建议
为了设置 Git 使其能正确合并,我们先开始做一些简单的配置。
1. 设置建议
当遇到冲突时,可以在命令行或者其他可视化工具中输入“git mergetool”来初始化合并活动。在“.gitconfig”中用“merge.tool”变量来设置 Git 中自己喜欢的冲突解决软件,比如用 KDiff3 的可能会这样填写”.gitconfig” 的 merge 部分:
2、2. 在冲突标记中显示(分支)共同的祖先
用下面的设置来改进冲突标记使其也显示(分支)共同祖先(感谢罗宾·斯托克和休·吉登斯):
3、合并时使用“耐心”算法
如果文件内容很长(比如一个 XML文件)、冲突很多或者两个版本很不一致时,试着用下面的命令再次合并:
4、当你需要单个文件的历史信息时
除非使用像 SourceTree 一样的可视化工具来弄清到底对一个文件做过什么,不然你可以使用:
5、处理过程示例
有几个同事分享了他们手动处理的过程,比如詹森·欣奇描述了他的处理流程:
从手头的合并开始:
6、IntelliJ IDEA 冲突解决工具
IntelliJ IDEA 是很多 Atlassian 工作人员使用的 IDE 。很多人使用它内建的冲突解决工具来处理冲突,它提供了三个面板来分析:本地、远程和合并结果:
7、KDiff3
KDiff3 是 KDE 产品系列的一部分,并且在我们内部调查时提到过几次
8、P4Merge
SourceTree 的作者斯蒂夫·斯特里廷和其他几个同事使用 P4Merge 来执行合并操作。P4Merge 是免费的可视化工具,它具有四个面板而不是其他工具提供的三个,显示了”base“、”local“、”remote“和”merge result“。
9、meld
meld 是用 GTK+ 和 Python 开发的,也是已经存在了很久的工具,被提到了几次。
10、 tig for status + diff
更多喜欢终端的人使用 tig (我们之前写过 tig 的一篇介绍),再加上 “ git diff ”。
11、OS X 下的 FileMerge 即 opendiff
在长长的建议列表里,有几个开发者提到了 OS X 下原生的“opendiff”工具,或者叫做“FileMerge”。
12、diffmerge
我并不知道 diffmerge 这个工具,不过在列表里也被提到了。