在合并分支的时候,难免有可能会遇到冲突,我们需要先解决掉冲突,然后才能去合并分支,下面,我们演示一下手工解决冲突的方法。

  • 先看一下我们之前创建的 git 项目目录结构。之前也创建了一个分支为 location-modules
    13.解决 git 合并冲突

  • 先切换到 master 分支,git checkout master ,然后打开项目的 MainActivity.java 修改一下这个文件的内容,将原有的 Toast 的内容 Toast 改为 Toast-master 保存一下。
    13.解决 git 合并冲突

  • 回到终端工具,去提交一下这个修改 git commit -am '修改 MainActivity.java 文件的Toast 内容为 Toast-master '
    13.解决 git 合并冲突

  • 然后切换到 location-modules 这个分支,git checkout location-modules 。打开项目的 MainActivity.java ,同样去修改一下 Toast 的内容改成 Toast-location-modules 保存,再去提交一下,git commit -am '修改 MainActivity.java 文件的Toast 内容为 Toast-location-modules '
    13.解决 git 合并冲突
    13.解决 git 合并冲突
    13.解决 git 合并冲突

  • 查看一下日志,git log --oneline --all -10 --graph
    13.解决 git 合并冲突

  • 下面我们可以试着把 master 这个分支合并到 location-modules 这个分支上,git merge master 回车以后会出现冲突的提示 CONFLICT Merge conflict in MainActivity.javaMainActivity.java 这个文件里有合并的冲突。
    13.解决 git 合并冲突

  • 这是因为我们在 master 还有 location-modules 这两个分支上都修改了 MainActivity.java 这个文件的 Toast 所以在合并的时候,git 不知道你想要哪个修改,想要放弃这个合并,可以使用 git merge ,后面加上一个 abort 选项。

  • 下面我们可以手工去解决一下这个冲突,打开项目的 MainActivity.java 在这个文件上面,git 已经给我们标记出了有冲突的地方,HEAD 和等号之间的内容当前分支上的 ,也就是 location-modules 这个分支上的内容,等号跟 master 之间的内容是 master 这个分支上的内容
    13.解决 git 合并冲突

  • 解决这个冲突,就是删掉不想要的内容,比如我们想使用 master 分支上的版本。这样,可以把 HEAD 和等号之间的东西删除掉,包括 HEAD 还有等号这两行代码,另外还有 >>>>>>master 这行代码。
    13.解决 git 合并冲突

  • 保存然后需要再做一个提交。git add .git commit这里可以不用为 commit 指定一个描述信息 回车以后 git 会自动提交一条描述。
    13.解决 git 合并冲突
    13.解决 git 合并冲突

  • Merge branch 'master' into location-modules ,保存并退出这样就完成了这个合并。

结束语

本篇内容的介绍了如何在分支上解决提交冲突的代码。后面的文章会带来Git删除分支、Git 远程。如有欠缺或不对的地方欢迎评论,谢谢您的观看。

相关文章: