分支是Git里面一项十分重要的功能。比如你的master分支上用于版本发布,但此时需要你在项目中添加一个新功能,如果继续使用master分支进行开发,那么其他小伙伴就获得不了版本库了(因为版本库不全)。现在就可以新建一个新的分支,在新分支上进行开发,开发好之后再将版本库合并回master分支,就可以解决这个问题~

1. Git分支过程

在版本回退中已经了解到,每次提交,Git都会把它们串成一条时间线,这条时间线就是一个分支,HEAD指向当前分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。

当我们新建bug分支,Git相当于新建一个bug指针,指向当前分支的最新提交。此时将分支切换到bug分支,则HEAD将会指向bug。

接下对工作区的内容进行改动,则是针对bug分支所进行的提交。

当bug分支上的工作完成了,就可以把bug分支合并到master分支上。Git怎么合并呢?最简单的方法,就是直接把master指向bug的当前提交,就完成了合并。

这样完成了之后还可以删除bug分支,Git也只是删除了bug指针就🆗了。

2. 创建分支

使用git branch bug创建bug分支

使用git branch命令可以查看分支,*标注则表明现在正处于master分支之上。

3. 切换分支

使用git checkout bug切换到bug分支

使用git checkout -b bug可以新建bug分支并切换到bug分支。

4. 合并分支

先在bug分支上进行两个提交。

切换到master分支,使用git merge bug将bug分支合并到master分支上。

可以看到提示Fast-Forward快进模式合并,这种模式下合并分支在历史记录中将看不到有新分支创建。

不使用快进模式,再切换回bug分支,进行一次提交。

切换回master分支合并bug分支,此时带上no-ff参数,表示不使用快进模式。

此时使用带图形的git log命令可以看到分支的存在。但是相当于在最后一个节点还有一次提交记录。

5. 删除分支

确保自己在master分支上,删除bug分支

1
git branch -d bug

6. 总结

创建分支 git branch 分支名
切换分支 git checkout 分支名
创建并切换到分支 git checkout -b 分支名
合并分支 git merge 分支名
删除分支 git branch -d 分支名

带图形界面的git log命令 git log --oneline --graph

7. 参考