Git 学习笔记 - 12 - 解决分支冲突

Git 学习笔记 - 12 - 解决分支冲突

注:本文参照的是廖雪峰老师的Git教程

概述:

按上一节说的,在合并分支的时候,如果发现master不是之前的分支了,已经有内容提交过了,而且提交的内容还是和自己这个私有分支修改的部分有重合,则会发生冲突。此时合并会报错,需要先解决这个冲突,去除报错,然后在合并。

步骤:

  1. 新建一个分支,名为:feature1,并跳转到这个分支上

    git checkout -b featual
  2. 在feature1 分支上修改 readme.txt 的最后一行内容

    Creating a new branch is quick AND simple.
    在这里插入图片描述

  3. 然后在feature1分支上面提交,命令不在描述。

  4. 这时我们再切回master分支

    git checkout master
  5. 然后我们将这个分支上的 readme.txt 文件进行修改,而不是按照上节的同步分支。

    将 readme.txt 最后一行修改为Createing a new branch is quick & simple.
    在这里插入图片描述

  6. 在master 分支上面将修改提交

  7. 提交完后我们再将修改后的feature1的分支内容合并到这个修改后的master分支上来,

    这时因为两个分支都有修改,所以无法执行快速合并,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,如果两者都修改了同一个地方时,就会有冲突。

  8. 在执行合并后发现有冲突,此时 Git 会提示我们文件存在冲突,必须手动解决冲突后再提交。

    使用 git status 命令查看当前的文件状态时,可以查看到当前的冲突的文件。

  9. 我们还可以进入有冲突的文件内部查看冲突

    进入文件内部,会查看到文件冲突的信息在哪,然后将其修改至想要的内容,解决冲突部分
    在这里插入图片描述

  10. 修改完成后,再次提交文件

  11. 对于之前的提交,我们可以通过携带参数来查看之前的 log 。

    这个参数我还没懂…

  12. 删除之前创建的分支feature1

解决冲突

总结:

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图。