How to change multiple commit message in Git
Today we will show you how to change multiple commit message in Git. In the previous articles, we showed you how to change unpushed commit message and how to change commit message that already pushed in Git.
To change more than one commit message, We need to use rebase
command as mentioned below.
git rebase -i HEAD~<commit_count>
Use the number of commits instead of <commit_count>
in the above command like git rebase -i HEAD~2
. This will launch the editor where you have to replace the word pick
to reword
. Check below code for your understanding.
pick 5f9e37b This is first commit message
pick 1ef0598 This is second commit message
# Rebase 1b87f21..1ef0598 onto 1b87f21 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
After
reword 5f9e37b This is first commit message
reword 1ef0598 This is second commit message
# Rebase 1b87f21..1ef0598 onto 1b87f21 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Now save and close the editor. At a time another editor will be open where you can update the commit message. The editor will open as many times as you have passed the number in <commit_count>
.
Run the below command to push the commit on remote branch.
git push <remote> <branch> --force
OR
git push <remote> <branch> -f
I hope you find this article helpful.
Thank you for reading. Happy Coding..!!