Emacs Magit tutorial | Rewrite older commit messages
I recently use Emacs's git client magit often.
Although understanding magit is not easy, so I'll show you how to rewrite commit messages you already commited on a local repository. You will eventually get the same result as you do with git rebase -i command.
Let's get to it!
See the above screenshot. I have 7 commits already, and then run
M-x magit-status, the magit status buffer will appear.
On the magit status buffer, press
l twice) to show the commit log buffer. I'd like to change commit message "commit 4" and "commit 5". Move the cursor to the line of "commit 4", press
E to edit commits from the current commit through HEAD.
git-rebase-todo buffer will appeare with 4 commits. To only change the commit messages "commit 4" and "commit 5", type
r on each commit to turn marking
You can also use other marking commands other than reword:
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
With done the marking,
C-c C-c to start editing. If you want to cancel editing, go to the magit status buffer, press
R in addition
A to abort the process.
Edit commit message as usual. Done with
C-c C-c and the next commit message edit buffer is coming.
See the commit log buffer when you complete all the editings, 2 commit messages changed as planned :)
Note: You would need to check those changes won't affect the shared repository when you push to it.