Git分支管理-新建、切换、合并、删除Git分支

 2015年10月19日    1285     声明


大多数版本控制系统都可以实现类似于Git的分支功能,与其它版本控制系统不同,Git以更简单快捷的方式实现了这一功能,使用Git的分支功能你可以快速的从工作主线进行代码分离,以避免新开发的功能对主线产生影响。

在工作中我们会遇到这样的情况:

  • 为了开发新需求,我们会在建立一个新分支
  • 建立新分支后,我们会切换到新分支并在新分支上开展工作
  • 在新功能开发过程中,主分支上的原功能还需要维护,如:BUG修复等。因此,还需要随时切加主分支工作。
  • 在这一过程中,我人实际是在主分支和新功能分支上并行工作。新功能开发完成,需要将两个分支的代码合并。合并完成,可能会删除不再需要的分支。

在上面的工作流中,说明了Git分支的作用及应用场景。

1. 新建分支

Git新建分支其实相当于在当前所在的提交对象上创建一个指针。新健分支使用git branch。例如,新建名为v2.0的分支:

git branch v2.0


2. 分支切换与推送

git branch命令仅仅会创建 一个新分支,并不会自动切换到新分支中去。分支切换,需要使用git checkout命令。例如,切换到刚刚创建的v2.0分支:

git checkout v2.0

git branch建立的分支只存在于本地,如果新建立的分支上同时有多人工作,就需要将其推送到远程服务器。分支推送使用git push origin命令。例如,将刚创建v2.0分支推送到Git服务器:

git push origin v2.0


创建并切换至新分支

我们可以通过一个带-b参数的git checkout命令,新建一个分支并同时切换到新建的分支上:

git checkout -b v2.0

这种创建方式是下面两条命令的简写:

$ git branch v2.0
$ git checkout v2.0


3. 分支合并

经过一段时间的工作,我们的新功能v2.0功能完成了。因此,我们需要将其合并到主分支master然后布署上线,分支合并使用git merge命令。例如,合并v2.0分支到主分支:

$ git checkout master
$git merge v2.0


4. 分支管理

有时我们需要查看已经创建的分支,并对分支进行一些管理。git branch不加任何参数,可查看系统中所有分支:

$ git branch
* master
  v2.0

可以看出,当前系统中有两个分支,*表示当前的工作分支为master

新功能开发完成后,v2.0分支已经不再需要,我们可以使用-d参数的git branch命令将其删除:

git branch -d v2.0

我们可能会需要查看分支最后一次的提交信息,可以通过git branch -v命令查看:

$ git branch -v
* master 9870dc0 fix a bug
  v2.0    2264931 V2.0 done



分支删除前或某些情况下,我们需要了解分支是已经合并过。可以--merged--no-merged参数查看分支的合并情况。例如,使用git branch --no-merged可以查看未合并的分支:


git branch --no-merged

使用git branch --merged命令查看已经合并的分支:

$ git branch --merged
* master
  v2.0


未合并的分支不能删除,使用git branch -d删除时分导致失败,但可以使用git branch -D命令强制删除。