2016-07-24 19 views
2

Ich habe in einer vergangenen Commit-Nachricht einige Wörter falsch geschrieben und möchte sie beheben. Sie waren nicht vom letzten Commit (vor 5 Commits), also funktioniert --amend hier nicht.Bearbeiten einer vergangenen Commit-Nachricht

Was wäre der einfachste Weg, um diesen Fehler zu beheben?

+0

Sie könnten dieses Tool verwenden: https://git-scm.com/docs/git-filter-branch (es ist ziemlich schwer zu handhaben, also würde ich empfehlen, nach einem Tutorial zu suchen - viele von ihnen finden Sie im GitHub help site) – TuringTux

+0

Sie sollten auf alten commt rebase und dann ändern Sie es. – Shravan40

+0

git rebase -i HEAD ~ 5 –

Antwort

2

Identifizieren Sie die Festschreibung, die Sie ändern möchten, mit git log --oneline.

$ git log --oneline 
5ebe0d0 foo 
66096c8 bar 
d83d7a7 *typo* 
a9f4c59 baz 
... 

Dann tun ein interaktives Unterfütterungsmaterial auf den übergeordneten dass commit (identifiziert mit den ^).

$ git rebase --interactive 'd83d7a7^' 

Dies sollte den Standard-Editor starten - was, wenn Sie es nicht geändert haben, ist vim.


(Dies ist für diejenigen, die weniger komfortabel mit vim.)

Press cw und geben Sie das Wort edit. Drücken Sie esc und geben Sie :wq ein, um die Datei zu speichern und zu beenden.


Alles was Sie jetzt tun müssen, ist git commit --amend, und Sie werden aufgefordert, Ihre Nachricht verpflichten zu bearbeiten. Dann beende die Ummantelung mit git rebase --continue.

HINWEIS: Wenn Sie einen Merge-Verlauf haben, wird dies flacher werden. Wenn Sie das wirklich nicht wollen, verwenden Sie die Option --preserve-merges mit git rebase (sowie --interactive).

+0

Vielen Dank! Genau das, was ich gesucht habe! –

Verwandte Themen