Git分支是轻量级的
在Git中,branch就是一个轻量级的file(40个字节),有一个特殊的指针HEAD
来指示Git位于哪个分支。
和其他版本控制软件相比,Git分支是轻量级的,鼓励多用分支。
例如,在某个仓库下运行下来命令,可以看到这个仓库下有2个分支:master,testing,同时HEAD是指向master的,即当前工作的分支为master
1 | $ git log --oneline --decorate |
分支常用命令
创建和switch
1 | git branch testing // 创建分支testing,但是仍在原先分支下 |
上述两条命令可以合并成一条命令:
1 | git checkout -b testing |
删除
和创建相比,多了一个option:-d
1
git branch -d testing
Merge 与 Rebase
例如,master分支合并testing分支
1 | git checkout master // 如果不在master分支下,需要先switch到master分支 |
把testing上改变rebase到master上面
1 | git checkout testing |
rebase
和merge
最后得到的新的snapshot是一样的,但是rebase
可以得到a cleaner history(看上去history是一个串行的记录过程)。 而merge
看到的history中间有分支然后再合流成一个(在merge的点)
list
把仓库里面的分支list出来:
1 | git branch |
分支管理其他命令
1 | git branch -v // 查看每个branch的最后一次commit |