Introduction
Git is distributed version control system and now-a-days, it is de facto version control system for number of open source and closed source software projects, including Eclipse. Git is amazing tool to use and has lot of flexibility.
Talking about flexibility, i was amazed by an interesting feature of git, that it allows you to edit and change previous commit messages.
There are basically two ways do it such as-
- Using amend switch
- Using rebase
Lets have a look at each of these.
Using amend switch
This is simple way to change commit message for your most recent commit. In this we make use of git commit with amend switch. Usage is shown as follows,
git commit βamend -m βnew messageβ
Note: i am using some of git aliases, such git ol displays the git commit log in proper format , you can browse for some aliases in my .gitconfig in my github repo
Consider the following commits in my repo.
π png;base644839458eb1e4ec7c
It is same same commiting but with added amend switch, following shows actual usage:
π png;base64d54e553bed62a293
This is quick and nice way for editing your most recent commit message.
Using rebase
Whenever you want to change the multiple or more than one commit messages or one other than recent commit then this is a nice way of doing it. Although rebase is very powerful that can do lot of things. But for this article letβs focus on only editing the commit message.
We use following command for our purpose,
git rebase -i <sha1 of previous commit msg> or <relative-HEAD-pointer>
Consider git repo with few commits shown as follows
π png;base6438d9d1f1fd759a9d
Above commit logs are shown in descending order in date-time order when it was committed, hence latest commit is top and least recent is below that and so on.
Suppose, you want to change the 2nd commit message (from bottom) then do it as follows-
As you want to change 2nd (156ce8e) commit log then we specify SHA1 of one prior to that , in our case 1st (6343229) commit log, for rebase command.
π png;base64d1d4ca633f33f58d
Following is command for doing it β Note, SHA1 hash
π png;base64f72c4eb95f69bbb8
After you hit enter, you will see following rebase file for editing-
π png;base64aa073d994a8c0fbf
In above, focus on top of file which is important to us. It shows commits with some commands /markers at start.
Those are rebase command/markers for several purpose, but for our case we use βrewordβ which solves our purpose.
Go ahead and change marker of first line (which is our 2nd commit), βpickβ to either βrβ or βrewordβ and retain others as it as shown in following
π png;base6412b31105924bf0e2
π png;base64ac58386caae13d45
After this exit file editing by pressing Ctrl+X, (some other way depend on editor ) then immediately after you will see commit dialog box for new commit message. Enter new commit message and then exit.
π png;base64999bd49b0709e191
then we are done. after that you should see following
π png;base64f2651dd74a8171e8
Check commit logs for new commit message
π png;base64a4cdf1893a49fcf4
Above steps are for changing only one commit message but for editing, changing multiple, you can change marker of the other commits to βrewordβ as per requirement and accordingly after that git will ask for entering new commit message box for each marked commit message and you are done
π png;base64a4cdf1893a49fcf4
Thats all folks for this article.
Thank you!
We will contact you soon.
Abhijeet SutarFebruary 24th, 2014Last Updated: February 24th, 2014

This site uses Akismet to reduce spam. Learn how your comment data is processed.