wake-up-neo.com

fatal: Der Upstream-Zweig Ihrer aktuellen Zweigstelle stimmt nicht mit dem Namen Ihrer aktuellen Zweigstelle überein

Nachdem ich den entfernten Zweig releases/rel_5.4.1 mit der Git-GUI ausgecheckt habe, wird diese unerwartete Fehlermeldung angezeigt, wenn ich versuche, Push zu versuchen:

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To Push to the upstream branch
on the remote, use

    git Push Origin HEAD:releases/rel_5.4.1

To Push to the branch of the same name on the remote, use

    git Push Origin rel_5.4.1

Ich weiß nicht, worüber Git spricht. Ich möchte wahrscheinlich zu Origin releases/rel_5.4.1 schieben, da dies der Zweig ist, den ich ausgecheckt habe. Also scheint mir keine Option richtig zu sein.

git status sagt, ich bin im Zweig rel_5.4.1.

Hier ist der Zweig, wie er in meinem .git/config erscheint:

[branch "rel_5.4.1"]
    remote = Origin
    merge = refs/heads/releases/rel_5.4.1

Was ist los?

39
Aaron Digulla

Ihr lokaler Zweig heißt rel_5.4.1, aber der entfernte Zweig ist releases/rel_5.4.1 (für Git hat der / keine besondere Bedeutung in den Zweignamen, außer um sie für das menschliche Auge lesbarer zu machen).

Beim Push ist Git vorsichtig, ob Sie Ihre Verzweigung nach releases/rel_5.4.1 (den Namen der entfernten Verzweigung) verschieben möchten oder ob Sie eine neue entfernte Verzweigung erstellen möchten. Es bemerkt jedoch die Ähnlichkeit der Namen.

Wenn Sie keinen neuen Zweig erstellen möchten, lautet der richtige Befehl

git Push Origin HEAD:releases/rel_5.4.1

Sie könnten auch verwenden

git Push Origin rel_5.4.1:releases/rel_5.4.1

Um die Warnung ein für alle Mal zu beheben, benennen Sie Ihren lokalen Zweig so um, dass er mit dem Remote-Namen übereinstimmt:

git branch -m releases/rel_5.4.1
33
Aaron Digulla

Zum Wohle der Leser, die das wahrscheinlich wichtigste Detail vermissen könnten, gut versteckt in den Kommentaren:

Dies ist auf die Einstellung git config Push.default zurückzuführen. Definiert, was git bei Eingabe von git Push ( siehe Link ) tut.

In der Frage wurde anscheinend die Einstellung auf simple gesetzt (dies ist der Standard für git v2), wahrscheinlich mit

git config --global Push.default simple

Dies bedeutet, dass git nicht pusht, wenn der lokale Zweig und der entfernte Zweig nicht genau übereinstimmen. Um Push auf den Tracking-Zweig zuzulassen, verwenden Sie make git pull und git Push symmetric

git config --global Push.default upstream

Hinweis: Lassen Sie --global weg, um nur die Einstellung für das aktuelle (lokale) git-Repository zu ändern.

48
Tino

Dieser Fehler kann für alle Fälle behoben werden:

git branch releases/rel_5.4.1 -u Origin/releases/rel_5.4.1

Es ändert den Upstream des Zweigs, um der richtigen Fernbedienung (wieder) zu entsprechen.

19
s.meijer

In meinem Fall hat git branch --unset-upstream dieses Problem gelöst.

8
gpap

Es scheint, als hätte ein lokaler Zweigname, der sich von der entfernten unterscheidet, nicht das, was Git zu sehr mag. Sie müssen ausstellen:

git Push Origin HEAD:releases/rel_5.4.1

explizit bei jedem Push

0
hek2mgl