Dienstag, 25. Oktober 2011

Einmal Commit und wieder zurück

Gelegentlich soll es ja passieren, daß man Sachen in sein Git Repository eincheckt, die man nicht einchecken will. Zum Beispiel hat eine Datei mal falsche Rechte, was nicht sofort auffällt, aber unschön ist. Was tun, wenn schon committed wurde? Oder wenn gar die Commit-Message falsch war? Richtig: Man guckt erstmal, was zum Thema bei stackoverflow steht. Und das ist:

Der einfachste Weg: Egal, ein Commit hinterher, der die Situation bereinigt. Vorteil: Unkompliziert. Nachteil: Es sieht nicht gerade hübsch aus. (Ok, das steht nicht bei stackoverflow, das ist also mein Beitrag zum Weltwissen.)

Zweite Variante:
git commit --amend
Vorteil: Git läßt einen die Commit-Message nochmal eingeben. Nachteil: Die falsche Datei kann man so nicht korrigieren.

Dritte Variante:
git reset --soft HEAD^
gefolgt von der Korrektur und einem abschließenden
git commit -c ORIG_HEAD
Vorteil: Es können wirklich alle Änderungen ausgeführt werden. Mit -c ORIG_HEAD werden Author-Informationen und der Timestamp vom ursprünglichen Commit übernommen.

Keine Kommentare: