push.default
najlepiej pokryte stronę man git config (man git config
).
Aby zrozumieć różnicę między „przed” i „prąd” dla push.default
, należy wiedzieć, termin upstream:
Upstream to lokalny wskaźnik od normalnego lokalnego oddziału do lokalnej zdalnego śledzenia oddział. (Tak, to są wszystkie lokalne). Przykłady:
- Branża blabla został Origin/blabla skonfigurowane jako upstream (bardzo często)
- oddział blabla ma pochodzenia/foo jak powyżej (oddział ma inną nazwę lokalnego; nie tak powszechne)
- oddział blabla ma źródło2/foo jako upstream
Należy pamiętać, że gałęzie: origin/* są lokalne i (ponownie) ustawione dla każdego pobrania z punktu początkowego. Są one nazywane "lokalnymi oddziałami zdalnego śledzenia". Reprezentują one stan rozgałęzień na zdalnym "pochodzeniu" w momencie ostatniego pobrania.
Każda (normalna) gałąź lokalna może mieć skonfigurowaną konfigurację, ale nie jest to konieczne: konfiguracja relacji typu "upstream" jest tylko dla wygody dla niektórych poleceń git!
Na przykład, jeśli robisz git status
, git mówi "x zatwierdza tył/przód", jeśli zna wcześniej (tak, żeby git mógł się z nim porównywać).
Normalny początkowy git checkout blabla
zwykle ustawia upstream konfigurację dla Ciebie (jeżeli pochodzenie/blabla istnieje, to jest wyrejestrowany i konfiguracja jak powyżej - w przeciwnym razie kasa zawiedzie).
może również użyć konfiguracji odgałęzienia oddziału, tj. Skopiować nowe zatwierdzenia do odległego oddziału reprezentującego poprzedni. (Jest to push.default = upstream
).
push.default = current
pozwala git push
skopiować nowe zobowiązuje się do zdalnego pod tą samą nazwą. Całkowicie ignoruje konfigurację wyższego rzędu. - Jeśli nazwa lokalnego oddziału jest zawsze taka sama, jak nazwa zdalnego, obie konfiguracje mają ten sam efekt, z tym wyjątkiem, że git push
z push.default = upstream
zakończy się niepowodzeniem, jeśli strona nie jest jeszcze skonfigurowana.
PD: Tak, *
na wyjściu z git branch
pokazuje bieżącą gałąź.
'push.default' nie ma wpływu na' pull'! - Raczej byłoby powiedzieć, że konfiguracja gałęzi upstream ma wpływ na to, co zostanie wyciągnięte. Ale obie rzeczy (upstream i push.default) to dwie różne rzeczy. –