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 bei Origin/master ziehen.
(Das Zusammenführen wird zu schwierig, ich würde lieber die 3 lokalen Commits erneut machen, wenn der Master auf dem neuesten Stand ist.)
Wie kann ich das machen?
git fetch Origin
git reset --hard Origin/master
Um Ihre alten Commits in einem temporären Zweig zu speichern, falls Sie sie benötigen
git branch temp
Wechseln Sie dann zum neuen Master
git fetch Origin
git reset --hard Origin/master
Versuchen Sie dies, um Ihre lokalen Commits wegzublasen:
git reset --hard HEAD~4
Als Alternative zum Zusammenführen können Sie den Feature-Zweig mit folgenden Befehlen auf den Master-Zweig umbauen:
git checkout feature
git rebase master
Wenn ein Hard Reset nicht für Sie geeignet ist und Sie keinen Pull-Merge durchführen möchten, können Sie Ihre lokalen unerwünschten Änderungen verwerfen.
git branch -D <local branch>
git checkout -b <branch name> Origin/<branch name>
Verwenden Sie master
als Beispiel:
git branch -D master
git checkout -b master Origin/master
Um Ihr aktuelles lokales Commit zu löschen, verwenden Sie Folgendes:
git reset HEAD^
Dadurch wird der Header in den Zustand vor dem Festschreiben zurückversetzt, und Sie können git pull
vom Master eingeben. Stellen Sie sicher, dass Sie alle Ihre Änderungen an einem anderen Ort speichern, bevor Sie aus dem Remote-Repository ziehen.
Um ohne Konflikte ziehen zu können, verwenden Sie git stash
und dann git pull
.