1485 Stimmen

Git-Pull rückgängig machen, Repos auf alten Stand bringen

Gibt es eine Möglichkeit, Git Pull rückgängig zu machen, so dass meine Quellen/Repos in den alten Zustand vor dem Git Pull zurückkehren? Ich möchte dies tun, weil es einige Dateien zusammengeführt hat, die ich nicht zusammenführen wollte, sondern nur andere verbleibende Dateien. Ich möchte also diese Dateien zurückholen, ist das möglich?

EDIT: Ich möchte die Git-Zusammenführung zur Klärung rückgängig machen. Nachdem ich einige Antworten gesehen habe, habe ich dies getan

git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...

Was soll ich jetzt tun? Unter git reset --hard ist OK? Ich will es nicht wieder vermasseln, also frage ich nach detaillierten Schritten?

12voto

henrique_ms Punkte 131

Versuchen Sie zu laufen

git reset --keep HEAD@{1}

11voto

GolamMazid Sajib Punkte 7668

Git-Pull untenstehende Operation durchführen.

i. git fetch

ii. git merge

Um das Ziehen rückgängig zu machen, führen Sie einen beliebigen Vorgang aus:

i. git reset --hard --- es macht auch alle lokalen Änderungen rückgängig

ou

ii. git reset --hard master@{5.days.ago} (wie 10.minutes.ago , 1.hours.ago , 1.days.ago ), um lokale Änderungen zu erhalten.

ou

iii. git reset --hard commitid

Verbesserung:

Das nächste Mal verwenden Sie git pull --rebase anstelle von git pull seine Sync-Server-Änderung zu tun ( fetch & merge).

10voto

Slycreator Punkte 788

Als Erstes empfehle ich, eine Kopie des Projekts zu erstellen.

Sie können einen neuen Zweig auschecken (git checkout -b NewCopy), damit Sie eine Kopie haben und dann zu dem Zweig zurückkehren können, aus dem Sie ausgecheckt haben.

Führen Sie diesen Befehl aus, um die Git-Referenz anzuzeigen.

git reflog

Es wird Ihr Referenzprotokoll und die commit_Id {etwas wie e0371eb} angezeigt, mit der Sie zu einem bestimmten Referenzpunkt zurückkehren können.

Führen Sie diesen Befehl aus, um zu einem Punkt zurückzugehen

git reset --hard 7316f34  //replace that with your commit id

Ich schlage vor, 2 Terminals zu öffnen, eines zum Anzeigen des Protokolls und das andere zum Ausführen des Befehls

9voto

bigtheo Punkte 421

Tun Sie dies, um Ihre Zusammenführungsaktion abzubrechen: git merge --abort .

8voto

Davide Punkte 16204

Wenn eine Zusammenführung fehlgeschlagen ist, was der häufigste Grund für die Rückgängigmachung einer git pull Laufen git reset --merge tut genau das, was man erwarten würde: die geholten Dateien behalten, aber die Zusammenführung rückgängig machen, die git pull versuchten zu fusionieren. Dann kann man entscheiden, was zu tun ist, ohne das Durcheinander, das git merge manchmal erzeugt. Und es ist nicht nötig, die genaue Commit-ID zu finden, die --hard die in jeder anderen Antwort erwähnt wird, erfordert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X