一、是什么
一般情况下,出现分支的场景有如下:
- 多个分支代码合并到一个分支时
- 多个分支向同一个远端分支推送
具体情况就是,多个分支修改了同一个文件(任何地方)或者多个分支修改了同一个文件的名称
如果两个分支中分别修改了不同文件中的部分,是不会产生冲突,直接合并即可
应用在命令中,就是push
、pull
、stash
、rebase
等命令下都有可能产生冲突情况,从本质上来讲,都是merge
和patch
(应用补丁)时产生冲突
二、分析
在本地主分值master
创建一个a.txt
文件,文件起始位置写上master commit
,如下:
然后提交到仓库:
- git add a.txt
- git commit -m ‘master first commit’
创建一个新的分支featurel1
分支,并进行切换,如下:
git checkout -b featurel1
- ======= 和 >>>>>>> 之间的区域就是传入进来更改的内容
现在要做的事情就是将冲突的内容进行更改,对每个文件使用 git add
命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git
就会将它们标记为冲突已解决然后再提交:
- git add a.txt
- git commit -m “conflict fixed”
此时master
分支和feature1
分支变成了下图所示:
使用git log
命令可以看到合并的信息:
三、总结
当Git
无法自动合并分支时,就必须首先解决冲突,解决冲突后,再提交,合并完成
解决冲突就是把Git
合并失败的文件手动编辑为我们希望的内容,再提交
参考文献
- https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344
正文结束
Ctrl + Enter