Wszystkie pozostałe odpowiedzi mówią o „upstream” (gałęzi, z której pobierasz).
Ale lokalny oddział może przesunąć do innego oddziału, niż ten, który ciągnie od.
mastermoże nie przekazywać do zdalnego oddziału śledzenia „ origin/master”. Upstream oddział dla może być , ale może naciskać na pilocie zdalnego oddziału śledzenia lub nawet .
Są one ustawione dla bieżącej gałęzi wraz z wartością.
masterorigin/masterorigin/xxxanotherUpstreamRepo/yyy
branch.*.pushremoteglobal remote.pushDefault
Jest to pilot zdalnego śledzenia oddział, który liczy się przy poszukiwaniu unpushed zobowiązuje: ten, który śledzi branch at the remotegdzie miejscowy oddział zostanie zepchnięte na. Może być znowu, albo nawet .
branch at the remoteorigin/xxxanotherUpstreamRepo/yyy
Git 2.5+ (drugi kwartał 2015 r.) Wprowadza do tego nowy skrót: <branch>@{push}
Zobacz popełnić 29bc885 , popełnić 3dbe9db , popełnić adfe5d0 , popełnić 48c5847 , popełnić a1ad0eb , popełnić e291c75 , popełnić 979cb24 , popełnić 1ca41a1 , popełnić 3a429d0 , popełnić a9f9f8c , popełnić 8770e6f , popełnić da66b27 , popełnić f052154 , popełnić 9e3751d , popełnić ee2499f [Wszystkie z 21 maja 2015] i zatwierdzenie e41bf35 [01 maja 2015] przez Jeffa Kinga ( peff) .
(Połączone przez Junio C Hamano - gitster-w commit c4a8354 , 05 cze 2015)
Zatwierdź adfe5d0 wyjaśnia:
sha1_name: zaimplementuj @{push}skrót
W trójkątnym przepływie pracy każda gałąź może mieć dwa odrębne punkty zainteresowania: ten @{upstream}, z którego normalnie pobierasz, i miejsce docelowe, do którego zwykle pchasz. Ten ostatni nie jest skrótem, ale warto go mieć.
Na przykład możesz chcieć wiedzieć, które zobowiązania jeszcze nie zostały wypchnięte :
git log @{push}..
Lub jako bardziej skomplikowany przykład, wyobraź sobie, że zwykle pobierasz zmiany z origin/master(które ustawiasz jako swoje @{upstream}) i przesuwasz zmiany do własnego osobistego rozwidlenia (np. As myfork/topic).
Możesz naciskać na swój widelec z wielu maszyn, co wymaga zintegrowania zmian z miejsca docelowego push, a nie z góry .
Dzięki tej łatce możesz po prostu:
git rebase @{push}
zamiast wpisywać pełne imię i nazwisko.
Commit 29bc885 dodaje:
for-each-ref: zaakceptuj %(push)format „ ”
Tak jak mamy „ %(upstream)”, aby zgłosić „ @{upstream}” dla każdego odwołania, ta łatka dodaje „ %(push)”, aby dopasować „ @{push}”.
Obsługuje te same modyfikatory formatu śledzenia, co upstream (ponieważ możesz chcieć na przykład wiedzieć, które gałęzie zatwierdzają push ).
Jeśli chcesz zobaczyć, ile zatwierdzeń Twoje lokalne oddziały są do przodu / do tyłu w porównaniu z oddziałem, do którego naciskasz:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}... Zobacz ten nowy skrót@{push}(odnoszący się do gałęzi zdalnego śledzenia, do którego naciskasz) w mojej odpowiedzi poniżej