このための特別なgitコマンドを探してみましたが、見つかりませんでした。誰よりも短いまたは速いものを提案できます:
git branch | awk '/\*/ { print $2; }'
$ git rev-parse --abbrev-ref HEAD
master
これはGit 1.6.3以降で動作するはずです。
Git 1.8.1では、「-short」オプションを指定してgit symbolic-refコマンドを使用できます。
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
あなたはの出力に興味があるかもしれません
git symbolic-ref HEAD
特に、あなたのニーズとレイアウトに応じてあなたがしたいかもしれません
basename $(git symbolic-ref HEAD)
または
git symbolic-ref HEAD | cut -d/ -f3-
そして再び、あなたにとっても興味深い.git/HEAD
ファイルがあります。
Git 2.22(2019年第2四半期)では、git branch --show-current
というより簡単なアプローチを使用できます。
commit 0ecb1fc (2018年10月25日)by Daniels Umanovskis(umanovskis
) を参照してください。
( C Hamano-gitster
- in commit 3710f6 、2019年3月7日)
branch
:--show-current
表示オプションを導入
--show-current
で呼び出された場合、git branch
は現在のブランチ名を出力して終了します。refs/heads
なしで、実際の名前のみが印刷されます。
分離HEAD状態では、何も出力されません。スクリプティングとインタラクティブ/有益な使用の両方を対象としています。
git branch --list
とは異なり、ブランチ名を取得するためにフィルタリングは必要ありません。
これは私が偶然見つけた古いスレッドです。私が言えることから、GITの現在のブランチだけをネイティブに表示する方法はないので、私は使用しています:
#> git branch | grep '*'
これは迅速で、python APIで使用できるはずです。
git branch --contains HEAD
* master
私は使っています
/etc/bash_completion.d/git
Gitに付属しており、ブランチ名と引数の補完を含むプロンプトを提供します。
これは短くはありませんが、切り離されたブランチも扱います:
git branch | awk -v FS=' ' '/\*/{print $NF}' | sed 's|[()]||g'
完全を期すために、少なくともLinuxではecho $(__git_ps1)
は、括弧で囲まれた現在のブランチの名前を提供する必要があります。
これは、gitコマンドではないため(gitに依存している場合)、特にbashコマンドプロンプトを設定して現在のブランチを表示するので、いくつかのシナリオで役立ちます。
例えば:
/mnt/c/git/ConsoleApp1 (test-branch)>echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)>git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)>echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)>cd ..
/mnt/c/git>echo $(__git_ps1)
/mnt/c/git>
git branch
を使用するだけでうまくいきます。
Gitバージョン:2.13.2