注:本文参照的是廖雪峰老师的Git教程
按上一节说的,在合并分支的时候,如果发现master不是之前的分支了,已经有内容提交过了,而且提交的内容还是和自己这个私有分支修改的部分有重合,则会发生冲突。此时合并会报错,需要先解决这个冲突,去除报错,然后在合并。
新建一个分支,名为:feature1,并跳转到这个分支上
git checkout -b featual
在feature1 分支上修改 readme.txt 的最后一行内容
Creating a new branch is quick AND simple.
然后在feature1分支上面提交,命令不在描述。
这时我们再切回master分支
git checkout master
然后我们将这个分支上的 readme.txt 文件进行修改,而不是按照上节的同步分支。
将 readme.txt 最后一行修改为Createing a new branch is quick & simple.
在master 分支上面将修改提交
提交完后我们再将修改后的feature1的分支内容合并到这个修改后的master分支上来,
这时因为两个分支都有修改,所以无法执行快速合并,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,如果两者都修改了同一个地方时,就会有冲突。
在执行合并后发现有冲突,此时 Git 会提示我们文件存在冲突,必须手动解决冲突后再提交。
使用 git status 命令查看当前的文件状态时,可以查看到当前的冲突的文件。
我们还可以进入有冲突的文件内部查看冲突
进入文件内部,会查看到文件冲突的信息在哪,然后将其修改至想要的内容,解决冲突部分
修改完成后,再次提交文件
对于之前的提交,我们可以通过携带参数来查看之前的 log 。
这个参数我还没懂…
删除之前创建的分支feature1
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph
命令可以看到分支合并图。