git获得分支标签名称

对于我自己的参考( 但这对其他人很有用),我概述了这个线程中提到的大多数( 基本 命令行 ) 技术,每个技术应用于几个用例: 头部为( 指向处):

  • 本地分支( 主)
  • 远程跟踪分支,与本地分支同步( 与源/主机相同提交)
  • 远程跟踪分支,不与本地分支同步( 原点/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 完成的)