Ich habe die folgenden Fernbedienungen in Git:
origin file:///some_path/project/ (fetch)
origin file:///some_path/project/ (push)
release file:///some_other_path/project/ (fetch)
release file:///some_other_path/project/ (push)
und ich habe angerufen:
git push --set-upstream origin --all
git remote update
wenn ich nach dränge origin
:
git push origin
alles funktioniert gut, aber wenn ich versuche, zu schieben release
:
git push release
Ich erhalte den folgenden Fehler:
fatal: You are pushing to remote "release", which is not the upstream of
your current branch "master", without telling me what to push
to update which remote branch.
Warum?
Antworten:
3 für die Antwort № 1Das master
Zweig hat einen Indikator, dass es entfernt ist origin/master
. Sie können dies über sehen git config -l
:
branch.master.remote=origin
branch.master.merge=refs/heads/master
Diesen Weg, git push
weiß, an welche Remote-Zweigstelle Sie Ihre Änderungen senden sollten, ohne sie explizit angeben zu müssen.
Versuchen Sie, die entfernte Verzweigung anzugeben, wenn Sie auf drücken release
: git push release master
.
2 für die Antwort № 2
Du musst es erzählen git push
Welchen Zweig du drücken willst und wohin es gehen soll.
Es gibt zwei Möglichkeiten, dies zu erreichen:
- Ausdrücklich: Sie können es explizit sagen
git push
was tun, indem Sie die vollständige Syntax verwendengit push <repository> <refspec>
. "refspec" ist normalerweise von der Form<local branch>:<remote branch>
. Also in deinem Fallgit push release master:master
würde deinen lokalen Master in den Masterzweig von "release" schieben. - ImplizitWenn Sie den aktuellen Zweig immer zu einem Zweig desselben Namens im Remote-Repository verschieben möchten, können Sie git anweisen. Setzen Sie dazu das Präfix "push.default = current" (
git config --local push.default current
). Danngit push release
funktioniert und wird den lokalen Master an den Remote-Master senden.
Warum es in Ihrem Fall nicht funktioniert: Es sieht so aus, als hättest du "push.default = simple" (oder "upstream") in deiner Konfiguration eingestellt. Dann wird Git erwarten, dass Sie zu einem Zweig stromaufwärts drücken, und sich sonst beschweren.