Search code examples
gitgit-rebasegit-commitgit-rewrite-historygit-amend

Edit the root commit in Git?


There's ways to change the message from later commits:

git commit --amend                    # for the most recent commit
git rebase --interactive master~2     # but requires *parent*

How can you change the commit message of the very first commit (which has no parent)?


Solution

  • Assuming that you have a clean working tree, you can do the following.

    # checkout the root commit
    git checkout <sha1-of-root>
    
    # amend the commit
    git commit --amend
    
    # rebase all the other commits in master onto the amended root
    git rebase --onto HEAD HEAD master