分支
基本概念
作用:假设我们正在开发一个新功能,但是需要两个周才能完成,第一周写了50%的代码,如果立刻提交,由于代码还没有写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次性提交,又存在丢失每天进度的巨大风险。而分支,就是属于我们自己的分支,别人看不到,它们还继续在原来的分支上正常工作,但是我们就可以在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全又不影响别人工作。
创建与合并分支
每次提交,git都把它们串成一条时间线,这条时间线就是一个分支。只有一条线的这个分支叫做主分支,即master。HEAD
严格来说不是指向提交,而是指向master,master才是指向提交的,所以HEAD
指向的就是当前的分支。
当我们创建新的分支,例如dev的时候,git创建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev。就表示当前分支在dev上。所以git创建一个分支很快,只是增加了一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化。不过从现在开始,对工作取得修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针保持不变。
在dev分支上的工作完成了,就可以把dev合并到master上。怎么合并呢?直接把master指针指向dev当前的提交,所以git合并分支也很快,就改改指针,工作区内容也不变。
合并分支后,甚至还可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支。
创建dev分支
1 | $ git checkout -b dev//创建dev分支并且切换到dev分支 |
1 | ~~~ |
然后从远程删除。删除命令也是pushgit push origin:refs/tags/< name>