mmexport1556985375283.jpeg
八 , 分支管理(一)
先列出以此小结常用命令:
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
- (以上如有问题, 不吝赐教, 真心希望你的批评指正.)
- (未完待续)
来源: http://www.jianshu.com/p/360ee5ddb72a