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
).
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
Sie sollten auf alten commt rebase und dann ändern Sie es. – Shravan40
git rebase -i HEAD ~ 5 –