1980 Stimmen

Rückgängig machen von "git commit --amend" anstelle von "git commit"

Ich habe versehentlich meine vorherige Übertragung geändert. Der Commit hätte separat sein sollen, um den Verlauf der Änderungen an einer bestimmten Datei festzuhalten.

Gibt es eine Möglichkeit, diese letzte Übertragung rückgängig zu machen? Wenn ich etwas tue wie git reset --hard HEAD^ wird die erste Übertragung ebenfalls rückgängig gemacht.

(Ich habe noch keine entfernten Verzeichnisse übertragen)

0 Stimmen

wenn Sie die Auswirkungen der einzelnen Schritte überprüfen möchten (entweder bevor Sie die folgenden Antworten ausprobieren, oder wenn Ihnen beim Ausführen eines Schrittes der Kopf schwirrt), versuchen Sie git log --reflog -p -- {{name-of-the-dir-or-file-in-question}} . Es zeigt sowohl die tatsächlichen Änderungen als auch die Commit-Meldungen für jede Aktion.

5voto

Muhammad Numan Punkte 17409

Schritt 1:

diesen Befehl ausführen

git reflog

Ausgabe

1111111 HEAD@{0}: commit (amend): [Feature] - Amended commit  Description
2222222 HEAD@{1}: commit: [Feature] - ABC Commit Description 

Schritt 2:

Jetzt gehen Sie zu HEAD@{1} um einen Commit aufzuheben, indem dieser Commit ausgeführt wird

git reset --soft 2222222

4voto

Priyanshu Chauhan Punkte 4849
  1. Auschecken in den temporären Zweig mit der letzten Übertragung

    git branch temp HEAD@{1}

  2. Letzte Übertragung zurücksetzen

    git reset temp

  3. Jetzt haben Sie alle Dateien, die Sie übertragen haben, sowie die vorherige Übertragung. Prüfen Sie den Status aller Dateien.

    git status

  4. Setzen Sie Ihre Commit-Dateien von git stage zurück.

    git reset myfile1.js (und so weiter)

  5. Fügen Sie diese Übertragung wieder ein

    git commit -C HEAD@{1}

  6. Fügen Sie Ihre Dateien zu einem neuen Commit hinzu und übertragen Sie sie.

4voto

Vasudeva H Punkte 31

Einfache Lösung Lösung funktioniert gegeben : Wenn Ihr HEAD-Commit mit dem Remote-Commit synchronisiert ist.

  • Erstellen Sie eine weitere Verzweigung in Ihrem lokalen Arbeitsbereich und synchronisieren Sie diese mit Ihrer entfernten Verzweigung.
  • Den HEAD-Commit aus dem Zweig (in dem git commit --amend durchgeführt wurde) auf den neu erstellten Zweig übertragen.

Der Cherry-Picked-Commit enthält nur Ihre letzten Änderungen, nicht die alten. Sie können diesen Commit nun einfach umbenennen.

0 Stimmen

Tolle Idee, hat bei mir gut funktioniert. Beachten Sie auch, dass Sie Folgendes verwenden können master / main wenn sich noch niemand mit ihm zusammengeschlossen hat. Hat mich heute gerettet!

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