在合并分支的时候,难免有可能会遇到冲突,我们需要先解决掉冲突,然后才能去合并分支,下面,我们演示一下手工解决冲突的方法。
-
先看一下我们之前创建的
git项目目录结构。之前也创建了一个分支为location-modules。 -
先切换到
master分支,git checkout master,然后打开项目的 MainActivity.java 修改一下这个文件的内容,将原有的 Toast 的内容 Toast 改为 Toast-master 保存一下。 -
回到终端工具,去提交一下这个修改
git commit -am '修改 MainActivity.java 文件的Toast 内容为 Toast-master '。 -
然后切换到
location-modules这个分支,git checkout location-modules。打开项目的 MainActivity.java ,同样去修改一下 Toast 的内容改成 Toast-location-modules 保存,再去提交一下,git commit -am '修改 MainActivity.java 文件的Toast 内容为 Toast-location-modules '。 -
查看一下日志,
git log --oneline --all -10 --graph。 -
下面我们可以试着把 master 这个分支合并到 location-modules 这个分支上,
git merge master回车以后会出现冲突的提示CONFLICT Merge conflict in MainActivity.java在 MainActivity.java 这个文件里有合并的冲突。 -
这是因为我们在 master 还有 location-modules 这两个分支上都修改了 MainActivity.java 这个文件的 Toast 所以在合并的时候,
git不知道你想要哪个修改,想要放弃这个合并,可以使用git merge,后面加上一个abort选项。 -
下面我们可以手工去解决一下这个冲突,打开项目的 MainActivity.java 在这个文件上面,git 已经给我们标记出了有冲突的地方,HEAD 和等号之间的内容当前分支上的 ,也就是 location-modules 这个分支上的内容,等号跟 master 之间的内容是 master 这个分支上的内容 。
-
解决这个冲突,就是删掉不想要的内容,比如我们想使用 master 分支上的版本。这样,可以把
HEAD和等号之间的东西删除掉,包括HEAD还有等号这两行代码,另外还有>>>>>>master这行代码。 -
保存然后需要再做一个提交。
git add .,git commit,这里可以不用为 commit 指定一个描述信息 回车以后git会自动提交一条描述。 -
Merge branch 'master' into location-modules,保存并退出这样就完成了这个合并。
结束语
本篇内容的介绍了如何在分支上解决提交冲突的代码。后面的文章会带来Git删除分支、Git 远程。如有欠缺或不对的地方欢迎评论,谢谢您的观看。