SORU
20 EKİM 2009, Salı


Program aracılığıyla kontrol geçerli Gıt şube belirlemek için

Unix veya GNU komut dosyası ortamında (dağıtım, özellik listesi, Linux a)) örneğin, şu anda bir çalışma dizini olarak teslim olduğunu belirlemek için en iyi yolu nedir?

Bu tekniğin kullanıldığı koşullardan biri, otomatik olarak bir sürüm svnversion Subversion ile yapacağı gibi () etiketleme olurdu.

Lütfen ayrıca ilgili soruma bakın: How to programmatically determine whether a Git checkout is a tag, and if so what is the tag name?

CEVAP
20 EKİM 2009, Salı


Doğru çözüm bash için __git_ps1 soran contrib/completions/git-completion.bash mu bakmak için. Adı açıklanmayan bir şube ne zaman biz müstakil KAFA durumu nasıl tarif edeceğimi seçme gibi tüm ekstralar çıkarma, yani:

branch_name="$(git symbolic-ref HEAD 2>/dev/null)" ||
branch_name="(unnamed branch)"     # detached HEAD

branch_name=${branch_name##refs/heads/}

git symbolic-ref sembolik referans tam şube adı ayıklamak için kullanılır; şu anda şube teslim olan BAŞ, için kullanıyoruz.

Alternatif çözüm

branch_name=$(git symbolic-ref -q HEAD)
branch_name=${branch_name##refs/heads/}
branch_name=${branch_name:-HEAD}

son satırı müstakil KAFASINI durum, sadece "" gibi bir durum. belirtmek için KAFASINI kullanarak başa nerede


11-06-2013 ekledi

Haziran C. Hamano (gıt yazar), Checking the current branch programatically Haziran 10, 2013 açıklar blog yazısı"neden" ler(ve nasıl) daha ayrıntılı olarak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008