Git-Commit-Verlaufsbefehle
- Ändern von früheren Commits und Meldungen
- Ändern und Verschieben früherer Commits und Meldungen
- Beenden des Rebasings
- Anzeigen des Referenzprotokolls
- Anzeigen des Referenzprotokolls der Branch-Spitze
- Entfernen eines früheren Commits
- Zurücksetzen des Rebasings
- Abbrechen eines früheren Rücksetzvorgangs
- Kopieren eines Commits von einem anderen Branch
- Suchen nach einer Commit-Meldung
Ändern von früheren Commits und Meldungen
$ git commit --amend
Fügen Sie die Option --amend
hinzu, um den letzten Commit des Branches, an dem Sie arbeiten, zu überschreiben.
Wenn sich keine Dateien in einem Index befinden, können Sie den früheren Commit mit der Option --amend
wiederherstellen und werden aufgefordert, die bestehende Commit-Meldung zu bearbeiten.
Siehe:
- Git-Grundlagen > Ändern von Commits
-
Verwenden von Git > Ändern eines Commits
Ändern und Verschieben früherer Commits und Meldungen
$ git rebase -i <commit>
Fügen Sie einen Commit-Hash hinzu, um eine Liste aller Commits bis zum letzten Commit anzuzeigen. Suchen Sie den Commit, den Sie ändern möchten, und ändern Sie die Zeile von pick
in edit
. Speichern Sie anschließend, und beenden Sie den Editor.
Im nächsten Schritt fügen Sie die Option --amend
hinzu, um den Commit auszuführen. Es wird ein Bildschirm zum Hinzufügen einer Meldung angezeigt. Ändern Sie die Meldung.
$ git commit --amend
Fügen Sie abschließend die Option --continue
hinzu, um den Rebase-Vorgang auszuführen.
$ git rebase --continue
Siehe:
- Git-Zusammenarbeit > Rebasing von Branches
-
Verwenden von Git > Kombinieren und Verschieben eines Commits
Beenden des Rebasings
$ git rebase --abort
Wenn Sie die Option --abort
hinzufügen, können Sie den Rebase-Vorgang abbrechen.
Anzeigen des Referenzprotokolls
$ git reflog
Mit dem reflog-Befehl können Sie eine Liste der Commits anzeigen, die HEAD in der Vergangenheit angezeigt hat.
08084a5 HEAD@{0}: commit: append description of the pull command
99daed2 HEAD@{1}: commit: append description of the commit command
48eec1d HEAD@{2}: checkout: moving from main to issue1
326fc9f HEAD@{3}: commit: append description of the add command
48eec1d HEAD@{4}: commit (initial): first commit
Es werden sowohl gelöschte als auch erfolgreiche Commits angezeigt, die beim Rebase-Vorgang erfasst wurden.
Anzeigen des Referenzprotokolls der Branch-Spitze
$ git reflog <ref>
Dadurch wird eine Liste von Commits für jedes Mal angezeigt, wenn die <ref>
-Spitze geändert wurde, die der im Folgenden angezeigten Liste ähnelt.
445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f
Wir können den Rebase-Verlauf sowohl von gelöschten als auch von bestehenden Commits anzeigen.
Entfernen eines früheren Commits
$ git reset --hard HEAD~
Siehe:
- Git-Grundlagen > Entfernen von Commits
-
Verwenden von Git > Entfernen eines früheren Commits
Zurücksetzen des Rebasings
$ git reset --hard <commit>
Verwenden Sie den reflog-Befehl um Commits zu suchen, bevor sie rebased wurden. Ermitteln Sie den Commit-Hash oder den [HEAD@{number}]
-Wert des Commits, der vor dem Rebasing stattgefunden hat. In diesem Beispiel sind 71bdfbd
und HEAD@{4}
die Verweise auf den Commit.
a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
a51f8d2 HEAD@{1}: rebase -i (squash): update 1
3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
71bdfbd HEAD@{4}: commit: update 2
f55ef69 HEAD@{5}: commit (amend): update 1
Fügen Sie den Hash-Wert (71bdfbd
und HEAD@{4}
) zu <commit>
hinzu, wenn Sie den reset-Befehl ausführen.
Die Kopfposition des Branches wird nun auf den Commit vor der Ausführung des Rebasings verschoben. Der Zustand des Branches ist nun derselbe wie vor der Ausführung des Rebasings.
Abbrechen eines früheren Rücksetzvorgangs
$ git reset --hard ORIG_HEAD
ORIG_HEAD bezieht sich auf den Commit vor dem Zurücksetzen. Sie können das vorherige Zurücksetzen rückgängig machen, indem Sie „reset to ORIG_HEAD“ verwenden.
Kopieren eines Commits von einem anderen Branch
$ git cherry-pick "<commit>"
Der durch den Hash-Wert identifizierte Commit wird in den aktuellen Branch kopiert.
Siehe:
- Git-Grundlagen > Kopieren von Commits in andere Branches
-
Verwenden von Git > Kopieren eines Commits in einen anderen Branch
Suchen nach einer Commit-Meldung
$ git log --grep "<pattern>"
Zeigt Commits mit dem in <pattern>
angegebenen Text an.