logo

So machen Sie das letzte Commit rückgängig

Als Softwareentwickler oder Webentwickler müssen wir möglicherweise viele Commits in unser Git-Repository übertragen.

Es gibt jedoch einige andere Fälle, in denen wir die Dateien festschreiben möchten, die nicht in unser Git-Repository übertragen werden. Bevor wir einen Commit erteilen, möchten wir möglicherweise manchmal einige zusätzliche Änderungen implementieren.

Daher müssen wir den letzten Commit über unser Git-Repository rückgängig machen. Wir werden in diesem Thema sehen, wie wir den letzten Commit rückgängig machen können.

Machen Sie das letzte Git-Commit rückgängig und führen Sie einen Reset durch

Wir können den letzten Git-Commit leicht rückgängig machen, indem wir den Befehl ausführen, d. h. 'Git-Reset' zusammen mit einer Option, d. h. '-weich' Dadurch werden alle an unseren Dateien vorgenommenen Änderungen geschützt. Wir müssen den Commit zum Rückgängigmachen beschreiben, der „HEAD~1“ ist.

Der letzte Commit des Git wird aus unserem Git-Repository gelöscht.

 $ git reset --soft HEAD~1 

In dieser Notation gilt

'KOPF~1': Das bedeutet, dass wir diesen HEAD auf einen einzelnen Commit vor dem Verlauf des Protokolls zurücksetzen möchten.

Palindrom in Java
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Welche Auswirkung hat der obige Befehl?

Der Befehl, d. h. 'Git-Reset' kann als Befehl angesehen werden, d. h. als Gegenteil von 'git add' , im Wesentlichen das Einfügen von Dateien in den Git-Index.

Wenn Sie die Option von beschreiben '-weich' , Git ändert die Dateien im Index oder im Ausführungsverzeichnis überhaupt nicht.

Beispielsweise haben wir in unserem letzten Commit zwei Dateien eingefügt, obwohl wir einige Änderungen in dieser Datei implementieren möchten.

Fehler: Hauptklasse konnte nicht gefunden oder geladen werden
 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

Daher werden wir uns bewerben 'Git-Reset' zusammen mit der Option von '-weich' um das letzte Commit rückgängig zu machen und auch einige zusätzliche Änderungen vorzunehmen.

 $ git reset --soft HEAD~1 $ git status 

Über den Filialmeister

Unser Zweig ist Master/Origin voraus bei Commit 1 (wenden Sie „Git Push“ an, um unsere lokalen Commits zu veröffentlichen).

Zu übernehmende Änderungen:

 (apply 'git restore --staged …' to unstage) 

Neue Datei: Datei1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Wie wir sehen können, befindet sich die Datei nach dem Rückgängigmachen des letzten Commits (zu übertragende Änderungen) immer noch im Index, obwohl der Commit gelöscht wurde.

Wir haben den letzten Commit für unser Repository erfolgreich durchgeführt.

Git-Commit hart zurücksetzen

Wir können im obigen Abschnitt berücksichtigen, dass wir dies problemlos tun können Machen Sie das letzte Commit rückgängig und behalten Sie die Änderungen bei Dies gilt für jede Datei im Index. In manchen Situationen möchten wir jedoch einfach die an einer Datei vorgenommenen Änderungen und Festschreibungen entfernen.

Es ist ein Ziel einer Option, d. h. '-hart' .

Um den letzten Commit rückgängig zu machen und alle Änderungen im Index und Verzeichnis zu entfernen, führen Sie einen Befehl aus, z. B. 'Git-Reset' zusammen mit der Option, d.h. '-hart' und beschreiben Sie ein Commit vor dem Befehl HEAD ('KOPF~1') .

 $ git reset --hard HEAD~1 

Jedes Commit und jede Änderung wird nach der Verwendung aus dem Index und dem Verzeichnis entfernt '--hart' Befehl. Wir sollten also vorsichtig sein.

Beispielsweise haben wir jede neue Datei mit dem Namen „file1“ in unser Git-Repository übernommen.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Nehmen wir nun an, dass wir den letzten Commit rückgängig machen und alle Änderungen entfernen möchten.

 $ git reset --hard HEAD~1 

Jetzt befindet sich HEAD auf dem zweiten Commit von 90f8bb1

Lassen Sie uns nun den Status unseres Git-Repositorys überprüfen.

Java-Datum aktuell
 $ git status 

Über den Filialmeister

Unser Zweig ist zeitgemäß mit Master/Origin (wenden Sie den Befehl „git push“ an, um unsere lokalen Commits zu veröffentlichen).

Was sind 10 von 1 Million?

Jetzt gibt es nichts mehr zum Festschreiben und der Arbeitsbaum ist sauber.

Gemischter Reset-Git-Commit

Behalten Sie die Änderung in unserem Arbeitsverzeichnis, jedoch NICHT im Index. Wir müssen den Befehl anwenden, d.h ., 'Git Reset' zusammen mit der Option, d.h. '-gemischt' . Nach diesem Befehl müssen wir „HEAD~1“ einfach an den letzten Commit anhängen.

 $ git reset --mixed HEAD~1 

Beispielsweise haben wir jede Datei mit dem Namen „Datei1“ in jedes Commit eingefügt, das rückgängig gemacht werden soll.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Wir führen einfach den Befehl aus, d. h. 'Git-Reset' zusammen mit der Option, d.h. '-gemischt' für das Rückgängigmachen des letzten Commits.

Infolgedessen ist die '-gemischt' Befehl ist ein 'mischen' Unter dem Hard- und Soft-Reset, daher der Name.

Über den Filialmeister

Unser Zweig ist Master/Origin voraus bei Commit 1 (wenden Sie „Git Push“ an, um unsere lokalen Commits zu veröffentlichen).

Nicht verfolgte Dateien: (wenden Sie „git add …“ an, um das hinzuzufügen, was festgeschrieben werden soll)

 file1 

Zum Festschreiben ist nichts enthalten, aber die nicht verfolgten Dateien sind vorhanden (wenden Sie „Git Track“ zur Nachverfolgung an).

Methodenüberladung

Daher haben wir eine weitere Vorgehensweise entdeckt, bei der das letzte Commit rückgängig gemacht wird, indem an den Dateien vorgenommene Änderungen beibehalten werden.

Letztes Commit rückgängig machen und wiederherstellen

Wenden Sie den Befehl an, d. h. 'Git zurücksetzen' und beschreiben Sie einen Commit, der zurückgesetzt werden soll, d. h. 'KOPF' zum Commit des Verlaufs, um den letzten Git-Commit rückgängig zu machen.

 $ git revert HEAD 

Der Befehl „git revert“ unterscheidet sich vom Befehl „git reset“, da er jeden neuen Commit zusammen mit einigen Änderungen aufzeichnen kann, die durch die Degenerierung des letzten Commits definiert wurden.

Wir können „HEAD~1“ mit dem Befehl „git reset“ beschreiben, da dieser Reset-Befehl jeden neuen HEAD-Platz setzt und gleichzeitig den beschriebenen Commit degeneriert.

Aus diesem Grund werden wir die Änderungen für einige Dateien erneut zur Wiederherstellung übertragen und sie nicht mehr ausführen. Wir haben jede neue Datei für unser Git-Repository festgeschrieben, möchten dieses Festschreiben jedoch degenerieren.

 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Wenn Sie den Befehl „git revert“ ausführen, öffnet Git unseren Texteditor, um die Änderungen automatisch zu übernehmen.

So machen Sie das letzte Commit rückgängig

Eine neue Nachricht wird zusammen mit einem neuen Commit-Hash angezeigt, wenn wir mit der Ausführung einer Commit-Nachricht fertig sind.

 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Wenn wir unseren Git-Verlauf noch einmal überprüfen müssen, können wir feststellen, dass ein neues Commit hinzugefügt wurde, um das letzte Commit über unser Repository rückgängig zu machen.

 $ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit