在新分支中添加记录
在新的分支中,在新文件家中添加内容‘testing’,并提交到仓库
此时会建立仓库中会出现一个新的记录,效果入下图
切换回master
分支
此时HEAD指针指向了master,此时在查看fish.txt文件中的内容,就会发现内容已经恢复到原来未修改的状态
分支合并
我们现在分两种选择,
一、直接将testing分支上的内容合并到master分支,这样不会发生版本冲突的问题
二、在master分支上继续进行修改,然后再选择合并分支,这样会发生版本冲突的问题
我们先进行第一种直接合并分支
git merge testing # 把指定分支合并到当前分支
此时再查看fish.txt文件中的内容,就会发现原本再testing分支中修改的文件内容出现到了master分支中
这种master分支没有内容改变的合并不会出现冲突的问题。
第二种就是master分支和testing分支都进行了修改,此时在选择合并就会发生冲突
首先需要在在两个分支上分别修改并提交到版本库
在testing分支下向文件中添加testing2222
在master分支下向文件中添加master2222
命令的全过程
git switch testing # 切换到testing分支 vim fish.txt # 使用vim编译器修改文件内容 git add . # 添加到暂存区 git commit -m'test2commit' # 提交到版本库 git switch master # 切换到master分支 vim fish.txt # 使用vim修改文件内容 git add . # 提交到暂存区 git commit -m'mastercommit' # 提交到版本库
此时合并分支
冲突(内容):合并fish.txt中的冲突
自动合并失败;修复冲突,然后提交结果
使用 git status也可以查看此时发生冲突的文件
为什么会发生冲突
其实就是在两个分支中同时修改了同一个文件的内容,在合并时,Git不能够知道你需要那个文件里面的内容,所以就将两个文件修改的内容全部保存下来,然后让你根据自己的需要进行内容的修改,这个也是后面解决代码冲突的基本思路
代码合并冲突解决
发生冲突后,我们先看一下发生冲突的文件内容
此时会发现文件中有部分数据分别是两个分支中各自添加的内容,使用<<<<<<< ,=======,>>>>>>>区分开来并且还提示那些内容是属于那一个分支的
然后我们修改文件的内容,根据实际需求选择需要的内容,
解决冲突以后,再进行一次提交
git add . git commit -'conflict fixed'
至此冲突就已经解决
如果你想了解这段时间内发生的内容,可以查看具体的日志信息git log
分支合并图
使用该指令git log --graph
可以看到分支记录以及图
删除分支
合并代码以后就可以这个删除开发分支
git branch -d testing
总结
本章我们学习了Git分支,了解到了分支的优势和Git分支的工作流程,如何创建分支、切换分支、合并分支、解决冲突。希望大家能够认识到分支开发的优势,掌握分支开的常用命令
本章常用命令及其拓展