26188 Stimmen

Wie kann ich die letzten lokalen Übertragungen in Git rückgängig machen?

Ich habe aus Versehen die falschen Dateien übertragen a Git aber den Commit noch nicht auf den Server gepusht.

Wie kann ich diese Übertragungen aus dem lokalen Repository rückgängig machen ?

Die einzige Möglichkeit scheint zu sein, die Änderungen in einen GUI-Texteditor zu kopieren, dann den gesamten lokalen Klon zu löschen, dann das Repository neu zu klonen und dann die Änderungen erneut anzuwenden. Allerdings,

  • Dies kann zu Datenverlusten führen.
  • Es ist sehr schwer, dies zu tun, wenn nur eine zufällige git commit ausgeführt wurde.

Gibt es einen besseren Weg?

2 Stimmen

Siehe diese Anleitung für das Rückgängigmachen von Git Commits auf Local, Public und Git Branch Wie man Git Commits wie ein Profi rückgängig macht

703 Stimmen

Weißt du, was Git braucht? git undo , das war's. Dann verschwindet der Ruf von Git, mit Fehlern von uns Normalsterblichen umzugehen. Implementieren Sie, indem Sie den aktuellen Zustand auf einen Git-Stack schieben, bevor Sie eine git Befehl. Es würde die Leistung beeinträchtigen, daher wäre es am besten, ein Konfigurations-Flag hinzuzufügen, das angibt, ob es aktiviert werden soll.

58 Stimmen

@YiminRong Das kann man mit Git's alias Funktion: git-scm.com/book/de/v2/Git-Basics-Git-Aliases

144voto

thestar Punkte 4565

Zum Zurücksetzen auf die vorherige Revision, wobei alle nicht übertragenen Änderungen dauerhaft gelöscht werden:

git reset --hard HEAD~1

136voto

iOS Coder Punkte 39

Verwenden Sie QuellBaum (grafisches Tool für Git), um Ihre Übertragungen und Ihren Baum zu sehen. Sie können ihn direkt manuell zurücksetzen, indem Sie mit der rechten Maustaste darauf klicken.

100voto

Ali Motameni Punkte 2099

Ich denke, wir haben code.txt Datei. Wir nehmen einige Änderungen an ihr vor und übertragen sie. Wir können diese Übertragung auf drei Arten rückgängig machen aber zuerst sollten Sie wissen, was eine Stagedatei ist... Eine Stagedatei ist eine Datei, die für die Übergabe bereit ist, und wenn Sie git status wird diese Datei mit grüner Farbe angezeigt und wenn sie nicht für die Übergabe bereitgestellt wird, mit roter Farbe:

enter image description here

Das bedeutet, dass Ihre Änderungen an dieser Datei nicht gespeichert werden, wenn Sie sie festschreiben. Sie können diese Datei in Ihrem Stadium mit git add code.txt und bestätigen Sie dann Ihre Änderung:

enter image description here

Letzte Übertragung rückgängig machen:

  1. Wenn wir nun nur die Übergabe ohne weitere Änderungen rückgängig machen wollen, können wir

    git reset --soft HEAD^

    enter image description here

  2. Wenn wir eine Übertragung und ihre Änderungen rückgängig machen wollen ( DIES IST GEFÄHRLICH, denn Ihr Wechselgeld geht verloren ), können wir verwenden

    git reset --hard HEAD^

    enter image description here

  3. Und wenn wir eine Übergabe rückgängig machen und Änderungen von der Bühne entfernen wollen, können wir

    git reset --mixed HEAD^ oder in einer Kurzform git reset HEAD^

    enter image description here

89voto

Carl Punkte 41134

Normalerweise wollen Sie rückgängig machen ein Commit, weil Sie einen Fehler gemacht haben und ihn beheben wollen - im Wesentlichen das, was der OP tat, als er die Frage stellte. Wirklich, Sie wollen tatsächlich wiederherstellen. eine Verpflichtung.

Die meisten Antworten hier beziehen sich auf die Kommandozeile. Während die Kommandozeile die beste Möglichkeit ist, Git zu verwenden, wenn man damit vertraut ist, ist sie für diejenigen, die von anderen Versionskontrollsystemen zu Git kommen, wahrscheinlich etwas fremd.

Hier sehen Sie, wie man es mit einer grafischen Benutzeroberfläche macht. Wenn Sie Git installiert haben, haben Sie bereits alles, was Sie brauchen, um diese Anweisungen zu befolgen.

HINWEIS: Ich gehe hier davon aus, dass Ihnen klar war, dass der Commit falsch war, bevor Sie ihn gepusht haben. Wenn Sie nicht wissen, was "pushen" bedeutet, dann haben Sie wahrscheinlich nicht gepusht. Fahren Sie mit der Anleitung fort. Wenn Sie den fehlerhaften Commit gepusht haben, ist es am wenigsten riskant, dem fehlerhaften Commit einen neuen Commit folgen zu lassen, der die Fehler behebt, so wie Sie es in einem Versionskontrollsystem tun würden, das Ihnen nicht erlaubt, die Geschichte zu überschreiben.

Im Folgenden erfahren Sie, wie Sie Ihre letzte Fehlerfeststellung mit einer grafischen Benutzeroberfläche beheben können:

  1. Navigieren Sie auf der Kommandozeile zu Ihrem Repository und starten Sie die GUI mit git gui
  2. Wählen Sie "Letzte Übertragung ändern". Sie sehen die Nachricht über Ihre letzte Übertragung, die Dateien, die Sie bereitgestellt haben und die Dateien, die Sie nicht bereitgestellt haben.
  3. Ändern Sie nun alles nach Ihren Vorstellungen und klicken Sie auf Beenden.

84voto

Gerard de Visser Punkte 6810

Wenn Sie den letzten Commit rückgängig machen, aber die Änderungen, die in dem Commit vorgenommen wurden, lokal beibehalten wollen, verwenden Sie diesen Befehl:

git reset HEAD~1 --mixed

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