検索すると2通りの方法が掲載されていることがある。

git branch --contains=HEAD
git rev-parse --abbrev-ref @

どちらでも取得することは可能だが、 git branch --contains=HEAD ではダメな場合がある。

ダメな例

前提として master ブランチにいるとする

git branch develop
git branch --contains=HEAD

を実行すると

master
develop

が返ってくる

これは両ブランチの指し示す HEAD が同じだから発生する。

alias

エイリアスで設定しておくと楽

[alias]
currentbranch= rev-parse --abbrev-ref @

おわりに

素直に git rev-parse --abbrev-ref @ を使おう。