Ich habe Code aus meinem Repo gezogen, was die Dinge durcheinander gebracht hat. Ich möchte mein gesamtes Projekt auf meinen letzten lokalen Commit zurücksetzen. Wie würde ich das tun?
Zu lokalem Commit zurückkehren?
Dadurch wird alles auf Ihre zurückgesetzt aktuell commit (alle Änderungen loswerden, inszeniert oder anderweitig:
git reset HEAD --hard
Dadurch wird alles auf die zurückgesetzt früher commit (auch alle Änderungen loswerden, inszeniert oder anderweitig)
git reset HEAD^ --hard
das ^ neben HEAD bedeutet eines Commit vor HEAD, HEAD ist dort, wo Sie sich gerade befinden. Sie können zwei Commits zurückgehen, indem Sie ^^ verwenden, oder drei mit ^^^. Zusätzlich können Sie eine Tilde verwenden, um die Anzahl der Commits anzugeben: ~3 für drei Commits zurück.
git reset HEAD~3 --hard
Denken Sie auch daran, dass die Option –hard bedeutet, dass diese Befehle alle Änderungen verwerfen, die Sie haben und die nicht gespeichert sind.
-
Es ist immer schön zu sehen, dass dem Anwendungsvorschlag entsprechende Sicherheitshinweise beigefügt sind
git reset --hard
wie in dieser Antwort – eine besorgniserregende Anzahl von Stackoverflow-Antworten nicht …– Mark Longair
15. Mai 2011 um 12:16 Uhr
-
Massiver Vorbehalt von “Wenn Sie seit Ihrem lokalen Commit einen Pull durchgeführt haben, wird dies Ihren lokalen Commit zerstören” 🙂 Sehen Sie sich dies an, um den Ballschmerz rückgängig zu machen gitready.com/advanced/2009/01/17/restoring-lost-commits.html
– Ed Bishop
17. November 2015 um 16:11 Uhr
-
@EdBishop Das Schöne an Git ist, dass Sie fast nie etwas verlieren
– Chris Rasys
23. Februar 2016 um 2:53 Uhr
-
@ChrisRasys in der Tat, es hat uns ein paar Mal gerettet: D
– Ed Bishop
24. Februar 2016 um 12:37 Uhr
Michael Witrant
Suchen Sie Ihr letztes lokales Commit in git log
und Renn git reset --hard <commit sha1>
.
Es löscht alle lokalen Änderungen, die Sie nicht festgeschrieben haben, und verschiebt den HEAD zu dieser Festschreibung.
git pull
kann mehrere Commits abrufen und zusammenführen. Um zu Ihrem vorherigen lokalen Status zurückzukehren (anstatt n-Commits zurückzusetzen), können Sie die verwenden neu loggen. git reset --hard @{1}