Versuchen Sie dies in Ihrem alice
Repository (vor dem Pushen):
git config push.default tracking
Oder Sie konfigurieren es als Standard für Ihren Benutzer mit git config --global …
.
git push
wird standardmäßig die origin
Repository (das normalerweise das Repository ist, aus dem Sie das aktuelle Repository geklont haben), aber standardmäßig wird nicht der aktuelle Zweig gepusht, sondern nur Zweige, die sowohl im Quell- als auch im Ziel-Repository existieren.
Die push.default
Konfigurationsvariable (siehe git-config(1) ) steuert, was git push
pusht, wenn es keine "refspec"-Argumente (d. h. etwas nach einem Repository-Namen) erhält. Der Standardwert bewirkt das oben beschriebene Verhalten.
Hier sind mögliche Werte für push.default
:
-
nothing
Dadurch sind Sie gezwungen, eine "refspec" anzugeben.
-
matching
(der Standard)
Dies drängt alle Zweige, die sowohl im Quell- als auch im Ziel-Repository vorhanden sind.
Dies ist völlig unabhängig von dem Zweig, der gerade ausgecheckt wird.
-
upstream
o tracking
(Beide Werte bedeuten das Gleiche. Der letztere wurde veraltet, um Verwechslungen mit "remote-tracking"-Zweigen zu vermeiden. Ersterer wurde in 1.7.4.2 eingeführt, so dass Sie den letzteren Wert verwenden müssen, wenn Sie Git 1.7.3.1 verwenden).
Diese schieben den aktuellen Zweig auf den Zweig, der durch die "upstream"-Konfiguration festgelegt ist.
-
current
Dadurch wird der aktuelle Zweig in den gleichnamigen Zweig des Ziel-Repositorys verschoben.
Die beiden letztgenannten sind in den meisten Fällen identisch (z. B. bei der Arbeit an lokalen Meister die die Ursprung/Master als sein Upstream), aber sie unterscheiden sich, wenn der lokale Zweig einen anderen Namen als sein "Upstream"-Zweig hat:
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
Mit push.default
gleich upstream
(o tracking
), würde der Schub an origin
's Meister Branche. Wenn er gleich ist mit current
würde der Schub an origin
's quickfix Zweigstelle.
Die matching
Einstellung wird aktualisiert bare
's Meister in Ihrem Szenario, sobald es festgelegt ist. Um sie zu etablieren, könnten Sie Folgendes verwenden git push origin master
einmal.
Allerdings ist die upstream
Einstellung (oder vielleicht current
) scheint besser zu dem zu passen, was Sie erwarten, also sollten Sie es vielleicht versuchen:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Auch hier gilt: Wenn Sie noch ein Git vor 1.7.4.2 verwenden, müssen Sie tracking
代わりに upstream
).