push.default
ist am besten in der Manpage von git Config bedeckt (man git config
).
Um den Unterschied zwischen „stromaufwärts“ und „Strom“ für push.default
verstehen Sie den Begriff Upstream wissen sollten:
Upstream ist ein lokaler Zeiger von einer normalen lokalen Niederlassung zu einem lokalen Fernverfolgung Zweig. (Ja, sind alle diese lokal.) Beispiele:
- Zweig blabla hat origin/blabla als Upstream-konfiguriert (sehr häufig)
- Zweig blabla hat origin/foo als stromaufwärts (Zweig hat einen anderen lokalen Namen, nicht so häufig)
- Zweig blabla hat Ursprungs2/foo als Upstream
Beachten Sie, dass Ursprung/* Verzweigungen sind lokal und (neu) bei jedem Abruf vom Ursprung festgelegt. Diese werden als "lokale Remote-Tracking-Zweige" bezeichnet. Sie repräsentieren den Zustand der Zweige auf dem entfernten "Ursprung" zum Zeitpunkt des letzten Abrufs.
Für jeden (normalen) lokalen Zweig kann ein Upstream konfiguriert sein, aber das ist kein Muss: Die Konfiguration einer Upstream-Beziehung dient nur der Bequemlichkeit einiger git-Befehle!
Wenn Sie zum Beispiel ein git status
machen, sagt Git Ihnen "x commits behind/ahead", wenn es den Upstream kennt (also kann git damit vergleichen).
Eine normale initiale git checkout blabla
richtet normalerweise die Upstream-Konfiguration für Sie ein (wenn Herkunft/blabla vorhanden ist, wird sie ausgecheckt und als Upstream eingerichtet - andernfalls schlägt der Checkout fehl).
git push
kann auch die Upstream-Konfiguration eines Zweiges verwenden, d. H., Um Ihre neuen Commits in den Remote-Zweig zu kopieren, der den Upstream darstellt. (Dies ist push.default = upstream
.)
push.default = current
lässt ein git push
die neuen Commits über an den Remote-unter dem gleichen Namen kopieren. Es ignoriert die Upstream-Konfiguration vollständig. - Wenn Ihr lokaler Zweigname immer derselbe ist wie der entfernte Zweig, haben beide Konfigurationen den gleichen Effekt, außer dass git push
mit push.default = upstream
fehlschlägt, wenn der Upstream noch nicht konfiguriert ist.
PD: Ja, *
in der Ausgabe von git branch
zeigt den aktuellen Zweig.
'push.default' hat keinen Einfluss auf' pull'! - Richtig wäre zu sagen, dass die Konfiguration eines Upstream-Zweiges einen Einfluss darauf hat, was gezogen wird. Aber beides (upstream und push.default) sind zwei verschiedene Dinge. –