分支是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