八 、分支管理(一)
先列出以此小结常用命令:
git branch #查看分支
git branch + 名 #创建分支
git checkout + 名 #切换分支
git checkout -b + 名 #创建并切换到此分支(可以记为切换到新创建的分支)
git merge #合并某分支到目前的分支
git branch -d + 名 #删除分支(可以记为delete开头的d)
8.1 分支的基本概念
分支有什么用呢?假如你现在跟别人做项目,你和另一个人同时开发此软件的不同功能,假设他开发功能1,你开发功能2,而你开发的功能2才仅仅完成15%,此时你需要第二天再继续工作,你俩可以先各自创建一个分支(分支互不影响,也就是你写的代码和另一位伙伴写的代码并不冲突),然后他开发完成后将自己的分支与主分支(你们的总工程)合并,就可以实现迭代开发的一个操作,而你的分支因为没有开发完,可以先保存着,等开发完成再合并到主分支。是不是很浅显易懂呢 o(∩_∩)o 。
我们之前做的操作都是在一个主分支master基础上进行的,想象一下,HEAD指向master,master指向提交即图中的节点,提交即是增加分支节点。
来自廖雪峰官网
而增加新的分支是什么呢?可以把master和其他新的分支比作是指针,master指向这个节点的指针,而新增的分支指针则指向新的节点。
实际操作时,是先将新指针指向master同一个节点,然后HEAD(可看为头节点)指向新的节点,如下图:
来自廖雪峰官网
然后提交后,将新的指针指向新的分支:
来自廖雪峰官网
8.2 代码操作
对开头的假设进行操作
- 创建两个分支dev1和dev2,你的分支是dev1,小伙伴的分支是dev2
git branch dev1
git branch dev2
- 你先保存你刚写好的文件,先切换到你的分支
git checkout dev1
-
接着add文件并且commit后就会将新创建的dev1指针指向新的一个节点即一个提交
-
此时切换到原来master分支,即使得HEAD指向master:
git checkout master
- 好了,你的15%代码就放这吧,明天再接着写,接下来你的小伙伴进行操作,跟你一开始同样的操作:
git checkout dev2
- 然后add并commit
仔细思考后你的小伙伴觉得功能已经挺好的了,不需要回改,因此可以和主分支合并啦。
git checkout master
git merge dev2
这样第一个功能就迭代成功啦,你的小伙伴合并完成后,就不需要这个指针了,可以删除了:
git branch -d dev2
(以上如有问题,不吝赐教,真心希望你的批评指正。)
(未完待续)
网友评论