07.分支管理之创建与合并分支

参考,个人作为记录而已
廖雪峰git教程

实际项目中如何使用Git做分支管理

分支管理

我们一般在master分支(git自动创建的)上增删改查的,分支管理,意味着有很多分支,否则一个master,git也不用特意来管理分支了

为什么要很多分支?

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

就是说新建一个分支,该分支有原本的代码,在此分支上修改不会影响原来的分支,且此分支可以和原分支合并成新改后的master主分支。

创建与合并分支

每一次提交,生成一个个commit id,这些id连成一个时间线,而master指向最新的id,一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

V2QojI.png

每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长

创建

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev

V2QHDP.png

就是说分支很多,head只有一个,创建了新的分支,head就指向了新的分支,以后的对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变

V2QX4g.png

合并

那么如何合并呢?将master指向dev的指向!合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉

创建分支的命令

创建dev分支,然后切换到dev分支:

1
$ git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

1
2
3
$ git branch dev
$ git checkout dev
Switched to branch 'dev'

合并分支的命令

假如,dev分支的工作完成,我们就可以切换回master分支:

1
$ git checkout master

dev分支的工作成果合并到master分支上(先切换到master分支再合并)

1
$ git merge dev

合并完成后,就可以放心地删除dev分支了(合并完删除)

1
$ git branch -d dev