电脑
GIT
首先我们回顾一下上一篇文章讲到了哪里,上文讲到的工作流程如图所示
# 首先我们看看当前分支master下的文件ll# 合并分支b1 -m选项如果不加的话,此时会弹出一个文本框需要你填写一个合并的信息git merge b1 -m '合并b1'# 合并分支b2git merge b2 -m '合并b2'
# 合并完成后 再次查看一下master下的文件,可见b1分支的工作内容,b2分支的工作内容,都已经合并到master中ll
#查看当前已合并的和未合并过的分支,可见其他分支中没有合并的内容git branch --mergedgit branch --no-merged
此时整个项目的工作流程,如图所示
# master分支中查看test.txt的内容cat test.txt# 添加一行内容'master上的修改'进入text.txt末端并查看echo 'master上的修改' >> test.txtcat test.txt# 跟踪修改并提交到仓库的master分支git add . && git commit -m 'master上的第四次提交'
# 切换到b1分支并查看b1分支中的test.txt内容git checkout b1cat test.txt# 添加一行内容'b1上的修改'进入text.txt末端并查看echo 'b1上的修改' >> test.txtcat test.txt# 跟踪修改并提交到仓库的master分支git add . && git commit -m 'b1上的第四次提交'此时大家应该都可以看出,两个分支中相同文件,相同位置做了不同的修改,那么合并的时候怎么处理呢?下文给大家讲解。
# 切换到主分支mastergit checkout master# 合并分支b1,可以发现冲突了git merge b1# 查看当前仓库状态,可以看到当前test.txt因包含冲突内容而处于未合并(Unmerged)状态git status
# 打开文件看看冲突内容,可以发现冲突的部分已经用<<<<<<< , ======= , 和 >>>>>>>这些行标记起来,具体区分如图
# 解决的冲突的方案,就是确定冲突部分的代码或者文案保留什么样的内容,然后清掉<<<<<<< , ======= , 和 >>>>>>>这些行标记,修改好的文件内容如图
# 重新提交一次到仓库git add . && git commit -m 'master上处理好冲突并提交第五次'
# 冲突的时候git会生成以下几个文件协助你解决冲突_BACKUP_:冲突文件备份_BASE_:冲突前文件内容_LOCAL_:本地文件修改内容,本文因为是master合并b1,所以是master分支的修改内容_REMOTE:远程文件修改内容,本文因为是master合并b1,所以是b1分支的修改内容修改完毕建议删除他们如图
此时整个项目的工作流程图,如图所示:
发生冲突GIT会生成几个文件,解决冲突后可以删除它们