分支的创建与合并
当创建一个仓库后,会存在一个主分支即master
分支。HEAD
严格上说并没有指向提交,而是指向master
分支,master
指向提交版本。

首先,我们创建一个dev
分支,然后切换到dev
分支:
git checkout -b dev #创建一个dev分支
git checkout
命令加上-b
参数表示创建并切换,相当于以下两个命令
git branch dev #新建分支
git checkout dev #切换分支
然后,可以利用git branch
命令查看当前分支:
$ git branch
*dev #会列出所有分支,当前分支上会出现一个`*`号
master

当
dev
分支的工作完成了,我们就可以切换到master
分支
git checkout master

切换到master
分支后,发现先前工作没有了。因为先前工作在dev
分支完成的,现在我们需要将dev
的成果合并到master
分支上。
$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
git merge
指令用于将当前分支与指定分支合并,可以添加-m '修改信息'
参数。
当合并完成后,需要放心的删除dev
分支了。
git branch -d dev
通常时候合并分子时,git会采用Fast forword
模式,这种模式会删掉分支后,会丢失分支信息。如果禁用Fast forword
模式,git会在merge时生成一个新的commit,这样就可以看出分支信息。
$ git merge --no-ff -m "merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上-m
参数,把commit描述写进去。

在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
干活都在dev
分支上,也就是说,dev
分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev
分支合并到master
上,在master
分支发布1.0版本;
你和你的小伙伴们每个人都在dev
分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:

网友评论