Zusammenfassung: Um den Fehler zu reproduzieren
git branch -D <branch>
und git checkout -b <branch> --track origin/<branch>
git pull
erhalten Sie ! [rejected] <branch> -> origin/<branch> (non-fast-forward)
Um es zu beheben, müssen Sie die Remote-Tracking-Informationen mit git branch -d -r origin/<branch>
sowie
OLD: Jemand hat den Zweig "development" gelöscht und erstellt, um alle Feature-Zweige zu entfernen und den Master als Basis wieder zu haben. Dann fügte er einige Feature-Zweige hinzu, aber nicht einige andere, die Probleme machten.
Ich habe git branch -D develop
und git checkout -b develop --track origin/develop
gemacht.
Wenn ich jetzt git pull
versuche, bekomme ich ! [rejected] develop -> origin/develop (non-fast-forward)
a git remote show origin
zeigt
Ich kann jetzt ein git fetch origin develop
und git merge FETCH_HEAD
machen, aber dann habe ich einige Konflikte und er möchte viele Dinge entwickeln. (vielleicht verpflichtet sich der alte Zweig?) Und mit einem git reset --hard
bin ich wieder da, wo der git pull die zurückgewiesene Nachricht zeigt ..
Wie überprüfe ich den neu erstellten Zweig am besten?
EDIT: auch wenn ich git branch -D develop
mache, bekomme ich mit git pull
! [rejected] develop -> origin/develop (non-fast-forward)
und git remote show origin
alles (aktuell)
BEARBEITEN: Ich habe es zuerst nicht erkannt, weil die Commit-Nachricht die gleiche war, aber nach einem Reset ist der HEAD auf einem sha, das die Fernbedienung nicht hat, also immer noch auf dem "alten" Zweig?
Sie können nicht ziehen, weil es jetzt eine andere Verzweigung ist.
Vielleicht solltest du von vorne anfangen und den Zweig remote develop
als neuen lokalen Zweig holen!
Anschließend können Sie Zweige auf Ihrem lokalen Computer zusammenführen oder ändern. Vergleichen Sie Verzeichnisbäume und andere Dateien.
Wenn Sie mit der Bearbeitung fertig sind, entfernen Sie einfach Ihren lokalen develop
Zweig und benennen Sie new_develop
in develop
um.
Tags und Links git