Versuchen Sie dies in Ihrem alice
Repository (vor dem Push):
git config push.default tracking
Oder konfigurieren Sie es als Standard für Ihren Benutzer mit git config --global …
.
git push
Standardmäßig wird das origin
Repository verwendet (normalerweise das Repository, aus dem Sie das aktuelle Repository geklont haben), es wird jedoch nicht standardmäßig der aktuelle Zweig verschoben. Standardmäßig werden nur Zweige verschoben, die sowohl im Quell-Repository als auch im Ziel-Repository vorhanden sind.
Die push.default
Konfigurationsvariable (siehe git-config (1) ) steuert, was git push
gepusht wird, wenn keine "refspec" -Argumente angegeben werden (dh etwas nach einem Repository-Namen). Der Standardwert gibt das oben beschriebene Verhalten an.
Hier sind mögliche Werte für push.default
:
nothing
Dies zwingt Sie, eine "Referenz" anzugeben.
matching
(Standardeinstellung)
Dadurch werden alle Zweige verschoben , die sowohl im Quell-Repository als auch im Ziel-Repository vorhanden sind.
Dies ist völlig unabhängig von dem Zweig, der gerade ausgecheckt ist.
upstream
oder tracking
(Beide Werte bedeuten dasselbe. Letzteres wurde veraltet, um Verwechslungen mit "Remote-Tracking" -Zweigen zu vermeiden. Ersteres wurde in 1.7.4.2 eingeführt, sodass Sie letzteres verwenden müssen, wenn Sie Git 1.7.3.1 verwenden. )
Diese verschieben den aktuellen Zweig zu dem Zweig, der durch seine "Upstream" -Konfiguration angegeben ist.
current
Dadurch wird der aktuelle Zweig in den gleichnamigen Zweig im Ziel-Repository verschoben.
Diese beiden letzten sind in häufigen Fällen gleich (z. B. Arbeiten an einem lokalen Master, der Origin / Master als Upstream verwendet), unterscheiden sich jedoch, 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
(oder tracking
), würden die Push gehen origin
‚s Master - Zweig. Wenn es gleich current
, würde die Push gehen origin
‚s quickfix Zweig.
Die matching
Einstellung aktualisiert bare
den Master in Ihrem Szenario, sobald er eingerichtet wurde. Um es zu etablieren, können Sie git push origin master
einmal verwenden.
Die upstream
Einstellung (oder vielleicht current
) scheint jedoch besser zu dem zu passen, was Sie erwarten, also möchten 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
(Wenn Sie vor 1.7.4.2 noch ein Git verwenden, müssen Sie tracking
stattdessen verwenden upstream
).