git show-branch输出
为了弄明白git show-branch的输出格式,先做一系列实验,看其输出
初始化一个空的git库
1 | $ git init |
在master分支上做初始提交
1 | $ touch master |
看看当前分支的情况
$ git branch
- master
$ git show-branch
[master] master init commit
新建devel分支
$ git branch devel
$ git branch
devel
- master
$ git show-branch
! [devel] master init commit
* [master] master init commit
–
+* [devel] master init commit
切换到devel分支并做新的提交
$ git checkout devel
Switched to branch ‘devel’
$ touch devel
$ git add –all
$ git commit -m “first commit on devel”
$ git branch
- devel
master
$ git show-branch
* [devel] first commit on devel
! [master] master init commit
–
* [devel] first commit on devel
*+ [master] master init commit
回到master分支
$ git checkout master
$ git show-branch
! [devel] first commit on devel
* [master] master init commit
–
+ [devel] first commit on devel
- [master] master init commit
在devel分支上新建feature分支
$ git checkout devel
$ git checkout -b feature
$ touch feature
$ git add –all
$ git commit -m “first commit on feature”
$ git show-branch
切换到devel分支
$ git checkout devel
$ git show-branch
切换到master分支
$ git checkout master
$ git show-branch
合并分支feature到devel
$ git checkout devel
$ git merge feature
$ git show-branch
feature分支多次提交之后
然后再将分支feature合并到devel
结论
- git show-branch输出
输出分为上下两部分,使用短划线”-“分隔。两个分支使用两个短划线”–”,三个分支使用三个短划线”—“,依次类推。
上半部分为层次缩进的分支列表,下半部分为commit列表。
上半部分的分支列表中,使用标识当前分支,其他分支使用!标识。分支前的标识符或者!一直垂直贯通到下半部分,这一垂直列的符号都是属于这个分支的。
下半部分的commit列表中,前导的符号有和+号。表示这一列上的分支(当前分支)有此commit。而+表示这一列上的分支(非当前分支)有此commit。
标识符的颜色只是用于容易区分列,一列的颜色是一致的,看起来更清楚。
- 分支名字和commit标识
show-branch输出中,上半部分的分支名字使用[分支名字]标识,下半部分的commit使用[分支名字]标识最后的commit,[分支名字^]标识该分支的上一个提交
[分支名字~2]标识该分支的倒数第三个commit。这是commit的快捷标识符,在git命令中可以引用对应的commit,也可以直接使用commit的hash tag,不过比较不直观而已。 - git branch
branch只是简单的输出所有的分支,当前分支前使用*表示,当前分支的文字颜色为绿色。 - merge
一个commit只输出一次,分支被合并后,被合并分支的commit使用[合并分支]标识,但commit是属于两个分支的,所以commit的前面有两个标识符号*和+。 - 分支名字空间
git的分支名字空间是扁平的,共享同一个namespace。
===
[erq]