博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git merge —— 牢记设置冲突显示格式为diff3
阅读量:7039 次
发布时间:2019-06-28

本文共 1542 字,大约阅读时间需要 5 分钟。

hot3.png

之前的博客  大讲了git merge的优越性,主要因为它用到了先进的3-way-merge算法。但是3-way-merge也会产生冲突,手工解决是跑不了了。为了方便正确的解决冲突,最好设置冲突显示格式为diff3:

git config --global merge.conflictstyle diff3

这样在merge产生冲突的时候,冲突文件将包含更多的信息(即冲突部分在基准点的内容)。看下面的例子:

基准版本:

topthis line will be deletedbottom

分支b1的版本(增加了两行"add new line","add new line2"):

topthis line will be deletedadd new lineadd new line2bottom

HEAD版本(删除了一行"this line will be deleted",增加一行"add new line2"):

topadd new line2bottom

不使用diff3 style的冲突文件:

top<<<<<<< HEADadd new line2=======this line will be deletedadd new lineadd new line2>>>>>>> b1bottom

这里的top和bottom两行是没有冲突的部分,中间是冲突的部分,其中:

(1) <<<<<<< HEAD 与 ======= 之间,是冲突部分在 HEAD 的内容
(2) ======= 与 >>>>>>> b1 之间,是冲突部分在 b1 分支的内容

通过以上信息你能知道这个冲突该怎么解决么?

估计很多人看见HEAD是b1分支的子集,会不假思索地保留b1分支内容,不是么?

top  this line will be deletedadd new lineadd new line2bottom

很遗憾,HEAD上曾经删除过“this line will be deleted”这一行,解决完冲突后,它又跑回来了

使用diff3 style的冲突文件:

top<<<<<<< HEADadd new line2||||||| merged common ancestorsthis line will be deleted=======this line will be deletedadd new lineadd new line2>>>>>>> b1bottom

同样,这里的top和bottom两行是没有冲突的部分,中间是冲突的部分,其中:

(1) <<<<<<< HEAD 与 ||||||| merged common ancestors 之间,是冲突部分在 HEAD 的内容
(2) ||||||| merged common ancestors 与 ======= 之间,是冲突部分在基准点的内容
(3) ======= 与 >>>>>>> b1 之间,是冲突部分在 b1 分支的内容

这一次多了一个基准点信息,就可以明确地看到,基准点有的这一行“this line will be deleted”,在HEAD中被删除了。所以很容易做出正确的冲突处理:

topadd new lineadd new line2bottom

另外git pull和git rebase也有合并操作,所以也会受影响。

再一次,请记住一定要使用diff3 style:

git config --global merge.conflictstyle diff3

转载于:https://my.oschina.net/jiangyouxin/blog/109491

你可能感兴趣的文章
zabbix如何监控nginx性能
查看>>
python3的异常处理
查看>>
linux C 动态共享库编译链接
查看>>
用jdbcTempate调用存储过程,处理BLOBCLOB小记
查看>>
oracle study road
查看>>
《你必须知道的495个C语言问题》笔记
查看>>
数据中心可靠级别划分
查看>>
你真的理解什么是“财富自由”吗?
查看>>
释放LINUX内存(请使用火狐浏览器浏览本页面)
查看>>
Andrew Ng 深度学习笔记-01-week3-课程
查看>>
Android获取通过XML设置的空间的高宽
查看>>
生活的苦逼
查看>>
在iptables防火墙下开启vsftpd的端口
查看>>
Mysql、MariaDB 新型主从集群配置GTID
查看>>
Linux HA Cluster的实例演示(2)
查看>>
Delphi之word报表
查看>>
unity的默认文件目录及脚本之间的执行顺序
查看>>
angular 定时函数
查看>>
移动端app测试关注点
查看>>
Android 仿QQ消息界面
查看>>