Git 分支管理

1、Git的分支管理

git的所有分支之间彼此独立,互不干扰,各自完成各自的工作和内容。常用的分支管理命令如下所示:

查看分支: git branch

创建分支: git branch <name>

切换分支: git checkout <name>

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

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

删除分支: git branch -d <name>

2、查看当前所在的分支

> git branch

* master

可以看到当前的分支叫 "master"

2.1、master分支

从项目创建之初,有且唯一的分支就是主分支,主分支被叫做 master。git 的 master 分支并不是一个特殊分支,它就跟其它分支完全没有区别。之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建。

2.2、HEAD指针

我们知道,一个项目往往有很多个分支,Git 是怎么知道当前所处在哪一个分支上呢?答案很简单,Git 有一个名为 HEAD 的特殊指针,指向当前所在的本地分支。其实,我们可以将 HEAD 想象为当前分支的别名,这样更有助于理解。

3、创建新分支

在实际开发过程中,master分支主要用于代码的发布,另外,我们经常还需要创建dev分支和bugfix分支,前者用于开发,后者用于bug修改。创建新分支的命令是:git branch <name>,具体如下所示:

> git branch dev

> git branch bugfix

4、切换分支

> git checkout dev

5、合并分支

当dev分支切换回master主分支的时候,可以将dev的修改提交合并到master分支上,使用如下命令:

> git merge dev

5.1、冲突的发生和解决

当同一个文件被两个分支都修改过,想要合并两个分支就会产生冲突,不能快速将dev合并到master上,并且git会提醒“合并过程中产生了冲突,请修正后再提交”。修正的过程如下所示:
(1)将两个分支的文件,进行对比修改,满足两个分支的提交。
(2)使用 git add 和git commit 进行一次新的提交。(此时提交的是master分支)
(3)再次合并

6、删除分支

当dev分支工作完成,并且合并到master分支的时候,这时dev分支可以直接删除,如下所示:

> git breach -d dev