Güncelleme: Bunu yayınlamamın üzerinden birkaç yıl geçti! HEAD'ı yukarı akışla karşılaştırmak için özel amacım olarak, şimdi @{u}
yukarı akış izleme dalının HEAD'ini ifade eden bir kısayol olan kullanıyorum . (Bkz. Https://git-scm.com/docs/gitrevisions#gitrevisions-emltbranchnamegtupstreamemegemmasterupstreamememuem ).
Orijinal cevap: Bu problemle de karşılaştım. Tek bir depoda genellikle birden fazla uzaktan kumanda kullanıyorum ve mevcut şubenizin hangisine karşı izlediğini unutmak kolay. Ve bazen bunu bilmek, örneğin yerel taahhütlerinize ne zaman bakmak istediğiniz gibi git log remotename/branchname..HEAD
.
Tüm bunlar git config değişkenlerinde saklanır, ancak git config çıkışını ayrıştırmanıza gerek yoktur. Git config komutunu ve ardından bir değişkenin adını çağırırsanız, yalnızca bu değişkenin değerini yazdırır, ayrıştırma gerekmez. Bunu göz önünde bulundurarak, mevcut şubenizin izleme kurulumu hakkında bilgi almak için bazı komutlar şunlardır:
LOCAL_BRANCH=`git name-rev --name-only HEAD`
TRACKING_BRANCH=`git config branch.$LOCAL_BRANCH.merge`
TRACKING_REMOTE=`git config branch.$LOCAL_BRANCH.remote`
REMOTE_URL=`git config remote.$TRACKING_REMOTE.url`
Benim durumumda, sadece geçerli uzaktan kumandanın adını bulmakla ilgilendiğim için bunu yapıyorum:
git config branch.`git name-rev --name-only HEAD`.remote
git remote show origin
. Diğer sorudaki ana cevap, burada basit cevabın etrafına sarılmış bir bash betiğidir ve bazıları için yararlı olabilir. Umarım bu soru tamamen kapatılmaz.