Git: ChangeLog des ersten Commits bearbeiten
Tags: git
Kategorie Software Engineering | Keine Kommentare »
Manchmal treibt einen die Flexibilität von Git in den Wahnsinn. Ein typisches Problem beim Anlegen eines neuen öffentlichen Git Repository auf GitHub oder BitBucket ist es, dass der ChangeLog Eintrag des ersten Commits fehlerhaft ist und zum Beispiel die falsche Emailadresse enthält. Hier für mich als Notiz die Lösung:
Zunächst benötigt man die SHA1 IDs der beiden ersten Commits. Dies erhält man mittels:
git log --oneline
B
A
Zunächst müssen wir den ChangeLog des ersten Commits bearbeiten. Ich gehe davon aus, dass der lokale Branch master heisst. Das geht per:
git checkout A
git commit --amend --author="NAME <EMAIL>"
Hier kann man weitere git commit –amend machen, um zum Beispiel auch noch die initiale Nachricht anzupassen.
git checkout master
--> liefert eine neue SHA1 ID für den ersten Commit: C
git rebase --onto C A
Die Historie sieht jetzt so aus:
B
C
Als Resultat ist jetzt das ChangeLog inklusive Email des Autors des ersten Commits angepasst. Anschließend muss man nur noch die ersten beiden Commits in einen zusammenfassen. Das geht so:
git rebase -i C
Im Editor erscheint jetzt der Commit B. Dort ersetzt man das pick durch edit. Anschließend geht es so weiter:
git reset --soft HEAD^
git commit --amend
git rebase --continue
Anschließend gibt es nur noch den Commit C :-)