使用命令:
git merge 分支名
git merge abort # 撤销合并
在master下打开工作区的hello.py并修改文件,如图:
将hello.py添加到暂存区,然后提交到本地库,如图:
切换b1分支下,修改工作区的hello.py文件,如图:
将hello.py添加到暂存区,然后提交到本地库,如图:
在切换到master下进行合并,产生冲突报错,自动合并失败,如图:
查看一下状态发现两个文件都被修改了,无法合并,如图:
打开工作区的hello.py文件,可以看见冲突的部分,如图:
手动修改需要保留的部分,删除<<<<HEAD,=======,>>>>>>b1,如图:
修改后将hello.py添加到暂存区,然后提交到本地库(提交本地库是不能带文件名),如图:
合并完成和b1分支下的hello.py是不会被修改的,如图:
总结:
master和b1其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就是在master分支上。
HEAD如果指向b1,那么我们现在就是在b1分支上。
所以切换分支的本质就是移动HEAD指针。