对于我自己的参考( 但这对其他人很有用),我概述了这个线程中提到的大多数( 基本 命令行 ) 技术,每个技术应用于几个用例: 头部为( 指向处):
- 本地分支( 主)
- 远程跟踪分支,与本地分支同步( 与源/主机相同提交)
- 远程跟踪分支,不与本地分支同步( 原点/feature-foo )
- 标记( v1.2.3 )
- 常规分离头( 上面没有)
git branch
1 | git branch | sed -n '/*/s///p' |
- 本地分支:
master - 远程跟踪分支( 同步):
(detached from origin/master) - 远程跟踪分支( 不同步):
(detached from origin/feature-foo) - 标记:
(detached from v1.2.3) - 常规分离头:
(detached from 285f294)
1 | git status | head -1 |
- 本地分支:
# On branch master - 远程跟踪分支( 同步):
# HEAD detached at origin/master - 远程跟踪分支( 不同步):
# HEAD detached at origin/feature-foo - 标签:
# HEAD detached at v1.2.3 - 常规分离头:
# HEAD detached at 285f294
git describe
1 | git describe --all |
- 本地分支:
heads/master - 远程跟踪分支( 同步):
heads/master(注:不是remotes/origin/master) - 远程跟踪分支( 不同步):
remotes/origin/feature-foo - 标记:
v1.2.3 - 常规分离头:
v1.0.6-5-g2393761
cat. git/HEAD
1 | cat. git/HEAD |
- 本地分支:
ref: refs/heads/master - 所有其他用例:对应提交的SHA
git rev-parse
1 | git rev-parse --abbrev-ref HEAD |
- 本地分支:
master - 所有其他用例:
HEAD
git symbolic-ref
1 | git symbolic-ref --short HEAD |
- 本地分支:
master - 所有其他用例:
fatal: ref HEAD is not a symbolic ref
( 这是用git版本 1.8.3.1 完成的)