Gitのcurrent branchを取得したくてgit branch | awk '$1=="*" {print $2}'
を思いついたんだけど、もうちょっと便利なヤツあるだろうと思って調べたらあった。
…というのを3回繰り返したのでブログに書くことにした。
Stack Overflowに自分とまったく同じ状況の人がいて、そこにある回答がズバリ欲しいものだった。
git rev-parse --abbrev-ref HEAD
パイプしなくてもgitのコマンドだけで表示できて便利。
ちなみに、Git 1.8以降なら以下でも可能らしい。 (CentOS6あたりまでGit 1.7なので使えなかったりする)
git symbolic-ref --short HEAD
余談
ところで、Gitにおける*symbolic ref*という概念は、refs/head/master
みたいなコミットオブジェクトの参照を指すらしい。
知らなかった。
A symbolic ref is a regular file that stores a string that begins with ref: refs/. For example, your .git/HEAD is a regular file whose contents is ref: refs/heads/master.
上記の引用のとおり、HEADファイルには作業ブランチへのsymbolic ref (refs/heads/master
) が示されている。
$ cat .git/HEAD
ref: refs/heads/master
Gitのことをちょっと調べようと思ったら、知らなかった概念が次から次へと現れるので一苦労する。