下面,通过一个实例来演示,模拟开发中的一种冲突的情况:
准备工作
第一步
在本地文件中创建一个git仓库:
可见,此时,HEAD指针指向master分支。
然后新建文件, readme.txt , 添加内容: the content belongs to master :
最后add、commit :
第二步
创建、切换到dev分支:
$ git checkout -b dev
Switched to a new branch 'dev'
然后,用git branch命令查看当前分支:
$ git branch
* dev
master
修改readme.txt 的内容, 修改为:
the content belongs to master
the content belongs to dev
然后add、commit
$ git add readme.txt
$ git commit -m "commit in dev"
[dev 989b97f] commit in dev
1 file changed, 1 insertion(+), 1 deletion(-)
再切换到master分支:
$ git checkout master
Switched to branch 'master'
$ git branch
dev
* master
中途休息
现在,master分支和dev分支各自都分别有新的提交,变成了这样:
开始合并
将dev合并到master , 会出现冲突:
直接查看readme.txt的内容:
<<<<<<< HEAD
the content belongs to master
=======
the content belongs to master
the content belongs to dev
>>>>>>> dev
Git用<<<<<<>>>>>>标记出不同分支的内容,我们修改如下后保存:
the content belongs to master
the content belongs to dev , too
再提交:
$ git add readme.txt
$ git commit -m "conflict fixed"
[master 6bbd9b3] conflict fixed
现在,master分支和dev分支变成了下图所示:
可以用git log看看分支的合并情况:
end