Git HowTo: Vorhergehenden Commit ändern

Geschrieben von Igor Scheller am 9. August 2015

Manchmal merkt man es zu spät und es ist passiert: Man hat weitere Änderungen committet und merkt, dass man die vorherige Commitmessage anpassen muss. Wäre es nur der letzte Commit gewesen, würde ein git commit --amend reichen: Wenn der zu ändernde Commit in Git aber weiter zurück liegt, muss man einen längeren Weg über git rebase nehmen.

Wenn noch nicht committete Änderungen im Arbeitsverzeichnis liegen, müssen diese zuerst mit git stash zwischengespeichert werden. Dadurch werden alle Änderungen auf den Status des HEAD zurückgesetzt.
Dann kann mit git rebase -i [Commit ID des Commits vor dem zu ändernden] der rebase gestartet werden.

Die Commit ID kann übrigens ganz einfach aus der Ausgabe von git log ausgelesen werden :))
Es öffnet sich der Standard Editor, wo die zu bearbeitenden Commits ausgewählt werden können.
Wird das pick durch ein r oder reword ersetzt, kann man im weiteren verlauf die Commitmessage ändern.
Durch ersetzen mit e oder edit kommt man zurück auf die Konsole und kann weitere Änderungen vornehmen und ganz normal committen.

Sind alle Änderungen und Anpassungen gemacht, kann mit git stash apply der vorherige Stand bearbeiteter Dateien wieder hergestellt werden.

Mit ein paar Befehlen ist es also möglich, einfach einen vorherigen Commit in Git anzupassen. Wenn die zu bearbeitenden Commits bereits gepusht sind, funktioniert dies jedoch nicht, da sich die Commit-IDs ändern und dadurch kein weiteres Pushen möglich ist!

Code

git stash
git rebase -i 4e6a1648
git stash apply
git status

Links

Git command reference
git commit
git log
git rebase
git stash

Shorturl Kategorie: Programmieren Tags:

Über Igor Scheller

Kontakt: Twitter Facebook Google+

Über mich gibt es nicht viel zu sagen ;) Ich bin Technikbegeistert, mich interessiert eigentlich alles was irgendwie etwas mit Computern, Elektronik, Programmieren und Technik zu tun hat, und manchmal schreibe ich auch darüber. Wenn du mehr wissen wilst, kannst du es mir ja Mailen :D (Oder in die Kommentare schreiben (oder per Snailmail senden))

Es sind leider keine Kommentare vorhanden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.