Diğer tüm cevaplar "yukarı akış" (çektiğiniz dal) hakkında konuşur.
Ama bir yerel şube olabilir itmek a farklı ondan çeker olandan dalı.
master
" origin/master
" uzaktan izleme şubesine aktarılmayabilir .
İçin yukarı akış dalı master
olabilir origin/master
, ancak uzaktan izleme dalına origin/xxx
veya hatta itebilir anotherUpstreamRepo/yyy
.
Bunlar branch.*.pushremote
, global remote.pushDefault
değerle birlikte geçerli dal için ayarlanır .
Öyle olduğu kimse o parça: sayımları unpushed hareketin arayan uzaktan izleme şube yerel şube itilmiş olacaktır. Yine olabilir hatta . branch at the remote
branch at the remote
origin/xxx
anotherUpstreamRepo/yyy
Git 2.5+ (2. Çeyrek 2015) bunun için yeni bir kısayol sunuyor: <branch>@{push}
Bkz 29bc885 işlemek , 3dbe9db işlemek , adfe5d0 işlemek , 48c5847 taahhüt , a1ad0eb işlemek , e291c75 taahhüt , 979cb24 taahhüt , 1ca41a1 taahhüt , 3a429d0 taahhüt , a9f9f8c işlemek , 8770e6f taahhüt , da66b27 işlemek , f052154 taahhüt , 9e3751d taahhüt , ee2499f taahhüt Mayıs 21'den [Tüm 2015] ve e41bf35 [01 Mayıs 2015] tarafından Jeff King ( peff
) tarafından taahhüt edilmiştir .
( Junio C Hamano tarafından birleştirildi - gitster
-içinde taahhüt c4a8354 , 05 Haz 2015)
Adfe5d0 işleminin açıklaması:
sha1_name
: @{push}
stenoyu uygulamak
Üçgen bir iş akışında, her dalın iki ayrı ilgi noktası olabilir: @{upstream}
normalde çektiğiniz ve normalde ittiğiniz hedef. İkincisi için bir kestirme yol yoktur, ancak sahip olmak yararlıdır.
Örneğin, henüz göndermediğiniz taahhütleri bilmek isteyebilirsiniz :
git log @{push}..
Ya da daha karmaşık bir örnek olarak, normalde değişiklikleri origin/master
kendiniz olarak ayarladığınızı (sizin ayarladığınız gibi @{upstream}
) ve değişiklikleri kendi kişisel çatalınıza (örn myfork/topic
.
Çatalınıza birden fazla makineden itebilirsiniz, bu da yukarı akış yerine itme hedefindeki değişiklikleri entegre etmenizi gerektirir .
Bu yama ile şunları yapabilirsiniz:
git rebase @{push}
tam adı yazmak yerine.
Taahhüt 29bc885 ekler:
for-each-ref
: " %(push)
" biçimini kabul et
Tıpkı her ref için %(upstream)
" @{upstream}
" bildirmek için " " kullandığımız gibi, bu yama da " %(push)
" ile eşleşecek şekilde " @{push}
" ekler .
Yukarı akışla aynı izleme biçimi değiştiricilerini destekler (çünkü hangi dalların zorlamayı taahhüt ettiğini bilmek isteyebilirsiniz ).
Yerel şubelerinizin , itmekte olduğunuz şubeye kıyasla kaç tane önde / arkada olduğunu görmek istiyorsanız:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..
. Yeni kısayol Bkz@{push}
içinde (eğer doğru zorlayan uzak izleme dalı referans) aşağıda Cevabıma