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.
master
moż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ą.
master
origin/master
origin/xxx
anotherUpstreamRepo/yyy
branch.*.pushremote
global remote.pushDefault
Jest to pilot zdalnego śledzenia oddział, który liczy się przy poszukiwaniu unpushed zobowiązuje: ten, który śledzi branch at the remote
gdzie miejscowy oddział zostanie zepchnięte na. Może być znowu, albo nawet .
branch at the remote
origin/xxx
anotherUpstreamRepo/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