Bunun için özel bir Git komutu aramaya çalıştım, ama bir tane bulamadım. Aşağıdakilerden daha kısa veya daha hızlı bir şey var mı?
git branch | awk '/\*/ { print $2; }'
Bunun için özel bir Git komutu aramaya çalıştım, ama bir tane bulamadım. Aşağıdakilerden daha kısa veya daha hızlı bir şey var mı?
git branch | awk '/\*/ { print $2; }'
Yanıtlar:
$ git rev-parse --abbrev-ref HEAD
master
Bu Git 1.6.3 veya daha yeni bir sürümle çalışmalıdır.
HEAD
beklenmeyeceğini döndüreceğini unutmayınmaster
Git 1.8.1'de git symbolic-ref komutunu "--short" seçeneğiyle kullanabilirsiniz:
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
Bunu bir TravisCI yapısının parçası olarak çalıştırırken hata alıyorum
Git 2.22 (Q2 2019) ile, daha basit bir yaklaşım olacaktır: git branch --show-current
.
Bakınız Daniels Umanovskis ( ) tarafından taahhüt edilen 0ecb1fc (25 Eki 2018 ) . (Göre Birleştirilmiş - Junio Cı Hamano - içinde 3710f60 tamamlama 2019 07 Mar)umanovskis
gitster
branch
:--show-current
görüntüleme seçeneğini tanıtİle çağrıldığında
--show-current
,git branch
geçerli şube adını yazdırmak ve sonlandırır.
Sadece gerçek isim yazdırılır, olmadanrefs/heads
.
Ayrılmış HEAD durumunda hiçbir şey çıkmaz.Hem kodlama hem de etkileşimli / bilgilendirici kullanım için tasarlanmıştır.
Bunun aksinegit branch --list
, sadece şube adını almak için filtreleme gerekmez.
Çıktıları ilginizi çekebilir
git symbolic-ref HEAD
Özellikle ihtiyaçlarınıza ve düzeninize bağlı olarak yapmak isteyebilirsiniz
basename $(git symbolic-ref HEAD)
veya
git symbolic-ref HEAD | cut -d/ -f3-
ve sonra yine .git/HEAD
ilginizi çekebilecek dosya var.
git rev-parse --symbolic-full-name
için git symbolic-ref
.
basename
ya cut
; kullanın BR=${BR#refs/heads/}
(burada BR, çıktısını kaydettiğiniz değişkenin adıdır git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
de
Söyleyebileceğim kadarıyla, sadece Git'teki geçerli dalı göstermenin bir yolu yok, bu yüzden kullanıyorum:
git branch | grep '*'
grep '*'
, nominal olarak bir sözdizimi hatasıdır. Muhtemelen git branch | sed -n 's/^\* //p'
zaten istiyorsun . Ya da aslında OP'nin ilk etapta yayınladığı şey, aynı şeydir.
grep '*'
, nominal olarak neden bir sözdizimi hatası olduğu konusunda beni aydınlatabilir misiniz ?
'*'
normal bir ifade olması ve geçersiz olmasıdır. Muhtemelen kullanmak istiyorsunuz '[*]'
(yani *
"sıfır veya daha fazla kez" operatörü yerine karakter ).
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Bu hızlı olmalı ve bir Python API ile kullanılabilir sanırım:
git branch --contains HEAD
* master
kullanıyorum
/etc/bash_completion.d/git
Git ile birlikte geldi ve şube adı ve argüman tamamlama istemi sağlar.
$ source /etc//bash_completion.d/git-prompt
Dosya farklı sistemlerde farklı adlandırılabilir. (Not: source
anahtar kelime .
bash'daki (nokta) ile aynıdır .)
Tamlık için, echo $(__git_ps1)
en azından Linux'ta, parantezle çevrili mevcut dalın adını vermelisiniz.
Bu, Git komutuna bağlı olmadığından (Git'e bağlıyken), özellikle Bash komut isteminizi geçerli dalı görüntüleyecek şekilde ayarlamak için bazı senaryolarda yararlı olabilir .
Örneğin:
/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>
Birisi bunu ( ) faydalı bulabilir . Geçerli dal * işareti ile gösterilir.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