Ich habe die folgende Nachricht in Git:
# Your branch and 'origin/master' have diverged,
# and have 3 and 8 different commits each, respectively.
# (use "git pull" to merge the remote branch into yours)
Ich möchte die 3 lokalen Commits wegwerfen und die 8 Remote-Commits am Ursprung / Master ziehen.
(Das Zusammenführen wird zu schwierig sein. Ich würde lieber die 3 lokalen Commits erneut durchführen, sobald der Master auf dem neuesten Stand ist.)
Wie kann ich das machen?
git reset origin/master
verzichten,--hard
damit Änderungen am Arbeitsverzeichnis nicht verloren gehen?So behalten Sie Ihre alten Commits in einem temporären Zweig bei, falls Sie sie benötigen:
Wechseln Sie dann zum neuen Master
quelle
temp
. Sie können später, wenn Sie einige dieser Commits wiederherstellen möchten, diese auswählen (siehegit help cherry-pick
).Versuchen Sie dies, um Ihre lokalen Commits zu sprengen:
quelle
Alternativ zum Zusammenführen können Sie den Feature-Zweig mit den folgenden Befehlen auf den Hauptzweig umstellen:
quelle
Wenn ein Hard-Reset nicht für Sie funktioniert und Sie keinen Pull-Merge durchführen möchten, können Sie Ihre lokalen unerwünschten Änderungen wegwerfen, indem Sie Ihren lokalen Zweig löschen und den ursprünglichen erneut herunterladen:
Am
master
Beispiel:quelle
Verwenden Sie Folgendes, um Ihr letztes lokales Commit zu löschen:
Dadurch wird der Header auf den Status vor dem Festschreiben zurückgesetzt, und Sie können
git pull
vom Master aus. Stellen Sie sicher, dass Sie alle Ihre Änderungen an einem anderen Ort (lokal) speichern, bevor Sie sie aus dem Remote-Repository abrufen.Um konfliktfrei ziehen zu können, verwenden Sie
git stash
und danngit pull
.quelle