このために特別なGitコマンドを探しましたが、見つかりませんでした。以下よりも短いまたは速いものはありますか?
git branch | awk '/\*/ { print $2; }'
このために特別なGitコマンドを探しましたが、見つかりませんでした。以下よりも短いまたは速いものはありますか?
git branch | awk '/\*/ { print $2; }'
回答:
$ git rev-parse --abbrev-ref HEAD
master
これはGit 1.6.3以降で動作するはずです。
HEAD
であり、予期されていないことにmaster
Git 1.8.1 では、「-short」オプションを指定してgit symbolic-refコマンドを使用できます。
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
TravisCIビルドの一部としてこれを実行するとエラーが発生する
Git 2.22(2019年第2四半期)を使用すると、よりシンプルなアプローチになりますgit branch --show-current
。
Daniels Umanovskis()によるcommit 0ecb1fc(2018年10月25日)を参照してください。(合併によりJunio C浜野- -で3710f60コミットし、2019年3月7日)をumanovskis
gitster
branch
:--show-current
表示オプションの紹介で呼び出されると
--show-current
、git branch
現在のブランチ名を出力して終了します。
実際の名前のみが印刷され、は含まれませんrefs/heads
。
デタッチされたHEAD状態では、何も出力されません。スクリプティングとインタラクティブ/有益な使用の両方を目的としています。
とは異なりgit branch --list
、ブランチ名を取得するためだけにフィルタリングする必要はありません。
あなたはの出力に興味があるかもしれません
git symbolic-ref HEAD
特に、あなたのニーズとレイアウトに応じて、あなたがしたいかもしれません
basename $(git symbolic-ref HEAD)
または
git symbolic-ref HEAD | cut -d/ -f3-
そして、.git/HEAD
あなたにとっても興味深いかもしれないファイルがあります。
git rev-parse --symbolic-full-name
にgit symbolic-ref
。
basename
またはを使用する必要はありませんcut
。使用しますBR=${BR#refs/heads/}
(BRはの出力を保存した変数の名前ですgit symbolic-ref HEAD
)。
git symbolic-ref --short HEAD
また、実行可能
私が言えることから、Gitの現在のブランチだけをネイティブに表示する方法はないため、以下を使用しています。
git branch | grep '*'
grep '*'
が、名目上は構文エラーです。git branch | sed -n 's/^\* //p'
とにかく欲しくなるでしょう。または実際には、OPが最初に投稿したものと同じです。
grep '*'
名目上構文エラーである理由を教えてください。
'*'
は正規表現であり、そのため無効です。おそらく使用する必要があります'[*]'
(つまり、*
「ゼロ回以上」の演算子の代わりに文字)。
grep '\*'
git branch | grep "*" | cut -d' ' -f2
これは速く、Python APIで使用できるはずです。
git branch --contains HEAD
* master
完全性のために、 echo $(__git_ps1)
を期すために、少なくともLinuxでは、括弧で囲まれた現在のブランチの名前が表示されます。
これは、(現在のブランチを表示するようにBashコマンドプロンプトを設定する場合は特に)Gitコマンドではない(Gitに依存している)ため、いくつかのシナリオで役立ちます。。
例えば:
/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 show-branch
--current
host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
* [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+ [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+ [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+ [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master