您的位置:首页 > 其它

Git 分布式版本控制系统(四) ---分支管理

2015-06-21 14:02 393 查看

分支管理

master分支

在版本回退中,已经知道,每次提交,Git都将他们串成一条时间线,这条时间线就是一个分支。Git中有条主分区叫做master,当创建版本库的时候Git默认创建。HEAD严格讲不是指向提交,而是指向master,master才是指向提交的,因此HEAD指向当前分支,如图4.1所示,表示master和HEAD指针所指向的分支。



图4.1

一开始,master是一条线,Git用master指向最新提交,然后用 HEAD指向master,就能确定当前分支。
每次提交master都向前移动一步,随着提交过程中,master分支会越来越长。

临时分支

1.新建临时分支

当我们创建新的分支,例如dev时,Git新建了一个指针叫做dev,指向master的提交,并且将HEAD指针指向dev,表示当前分支在dev上,工作区没有任何变化。(HEAD总是指向当前分支)。如图4.2所示,表示新建分支dev,并且指向当前分支。



图4.2
新建分支命令:
<span style="font-size:14px;">$ git checkout -b dev</span>
-b 表示新建并且切换到dev分支

从现在起,一切所做的工作都是在dev分支上进行,master分支是没有更新的,以后的修改和提交都是对dev分支操作,提交一次,dev指针向前移动一次,master指针不动。如图4.3所示,在dev分支上提交,指针向前移动。



图4.3

2.如何将dev合并到master分支上?

首先切回到master分支上

用git branch命令查看当前分支,打印信息如下所示。
<span style="font-size:14px;">  *dev

   master</span>


该命令会列出所有分支,*号表示当前分支。

使用$git checkout 分支名切换分支。如下所示,切换到master分支。

<span style="font-size:14px;">$ git checkout master</span>


当切到master分支后会发现,之前所做的工作不见了,因为都是在dev分支上所做的,而在master分支上并没与提交,因此可以将dev的提交合并(merge)到master分支上。

使用$git merge 分支名 ,将该分支合并到当前分支。

<span style="font-size:14px;">$ git merge dev</span>


合并完成,需要删除临时分支dev,使用$git branch -d 分支名命令删除。

<span style="font-size:14px;">$ git branch -d dev</span>


建议:

Git建议多是用临时分支来完成整个项目的开发,这和直接在master上的工作效果是一样的,但是更安全。

小结:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: