Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
77
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@sugyan

get current branch name

現在のブランチ名を文字列として取り出す方法いろいろ。
正直よく理解していない部分も多いので、間違いなどあればご指摘いただけると嬉しいです。

git-symbolic-refを使う

branch名の取得なら、多分これが一番良い? HEADを指定することで現在のワーキングツリーがどのブランチかを得ることができる。
zshのVCS_INFO_git_getbranchでもこれが使われている模様。

$ git symbolic-ref --short HEAD

--shortオプションはv1.7.10以降から?
https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.10.txt#L125


git-name-rev, git-describeを使う

git-name-revは指定したrevに対するsymbolic name(?)を返すので、HEADを指定することで現在の最新コミットに関連するbranch名やtag名を得ることができる。

$ git name-rev --name-only HEAD

git-describeは指定したrevに最も近いtagなどを取得することができるようで、--allオプションを指定すればbranch名も対象になり、取得することができる。

$ git describe --all

どちらもbranch名だけでなくtag名も対象になるので純粋にbranch名だけを取り出したい場合はさらにフィルタリングが必要になるかも。


git-branchの出力を加工する

git branch -aですべてのブランチが表示され、current branchには行先頭に"*"がつくのでその行からブランチ名を取り出して使うことができる。

$ git branch -a | grep -E '^\*' | cut -b 3-
$ git branch -a | grep -E '^\*' | sed -e 's/^\* //'


git-statusの出力を加工する

git status --short --branch --untracked-files=noでもcurrent branch名が取れるのでそれを加工することでも取得できる。

$ git status -sbu no | cut -b 4-


参考URL

77
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
77
Help us understand the problem. What is going on with this article?