git branch
命令列出repository
中所有的branch
:
[root@localhost git_repo]# git branch
* master
git branch <branch-name>
会从当前working directory
中fork
出一个新的branch
:
[root@localhost git_repo]# git branch crazy
git checkout <branch-name>
会切换到指定branch
的working directory
:
[root@localhost git_repo]# git checkout crazy
Fast-forwarding merge
:把fork
出来的branch merge
回原branch
时,如果原branch
和fork
出来的branch
没有分叉,也即还在fork
出来的branch
的revision history
里,则直接让原branch
的HEAD
指向现在fork
出来的branch的
snapshot
即可。如下图所示:
与fast-forwarding merge
相对应的是3-way merge
:两个branch
之间存在着分叉,这时merge
回branch
需要产生一个新的commit
:
参考资料:
Branches, Part I;
Branches, Part II。