Veit Schiele Communications

Veit Schiele Communications

Git: Entfernen eines commit

Manchmal ist es erforderlich, die git-Historie zu ändern, z.B. wenn versehentlich sensible Daten in das Repository gelangt sind.
erstellt von Veit Schielezuletzt verändert: 07.06.2015 19:02 © Veit Schiele 2011–2015

Löschen des letzten Commit

$ git reset HEAD^ --hard
$ git push origin -f

Löschen anderer Commits

Angenommen der SHA-Wert des zu entfernenden Commits sei d82199e, dann ist der einfachste Weg ein interaktiver rebase auf die Mutter des betreffenden Commit:

$ git rebase -i d82199e origin

Dies öffnet einen Editor und zeigt Ihnen eine Liste aller Commits nach dem zu entfernenden Commit:

pick d82199e Updated readme
pick 410266e Changed import for the INameChooser interface
…

Wenn Sie nun eine Zeile entfernen, so wird dieser Commit nach dem Speichern und Schließen des Editors gelöscht. Anschließend kann das entfernte Repository aktualisiert werden mit:

$ git push origin HEAD:master -f

Ändern einer Commit Message

Dies lässt sich ebenfalls einfach mit rebase realisieren wobei Sie in Ihrem Editor nicht die Zeile löschen sondern in der Zeile pick durch r (reword) ersetzen.