/ / Es ist nicht möglich, zur sekundären Fernbedienung zu wechseln - git

Nicht in der Lage, zu sekundären Remote - Git zu schieben

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 № 1

Das 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 verwenden git push <repository> <refspec>. "refspec" ist normalerweise von der Form <local branch>:<remote branch>. Also in deinem Fall git 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). Dann git 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.