Skip to content

Instantly share code, notes, and snippets.

@nepsilon
Last active September 7, 2024 11:11
Show Gist options
  • Save nepsilon/156387acf9e1e72d48fa35c4fabef0b4 to your computer and use it in GitHub Desktop.
Save nepsilon/156387acf9e1e72d48fa35c4fabef0b4 to your computer and use it in GitHub Desktop.
How to change your commit messages in Git? — First published in fullweb.io issue #55

How to change your commit messages in Git?

At some point you’ll find yourself in a situation where you need edit a commit message. That commit might already be pushed or not, be the most recent or burried below 10 other commits, but fear not, git has your back 🙂.

Not pushed + most recent commit:

git commit --amend

This will open your $EDITOR and let you change the message. Continue with your usual git push origin master.

Already pushed + most recent commit:

git commit --amend
git push origin master --force

We edit the message like just above. But need to --force the push to update the remote history.

⚠️ But! Force pushing your commit after changing it will very likely prevent others to sync with the repo, if they already pulled a copy. You should first check with them.

Not pushed + old commit:

git rebase -i HEAD~X
# X is the number of commits to go back
# Move to the line of your commit, change pick into edit,
# then change your commit message:
git commit --amend
# Finish the rebase with:
git rebase --continue

Rebase opened your history and let you pick what to change. With edit you tell you want to change the message. Git moves you to a new branch to let you --amend the message. git rebase --continue puts you back in your previous branch with the message changed.

Already pushed + old commit:

Edit your message with the same 3 steps process as above (rebase -i, commit --amend, rebase --continue). Then force push the commit:

git push origin master --force

⚠️ But! Remember re-pushing your commit after changing it will very likely prevent others to sync with the repo, if they already pulled a copy. You should first check with them.

@19007361
Copy link

19007361 commented Mar 4, 2020

Already pushed + most recent commit:

git commit --amend
git push origin master --force-with-lease

@leoiamele
Copy link

Thanks! This is really helpful!

@normancarcamo
Copy link

What if I want a commit using the hash?
is there any way to do that?

for example:

git commit -c [HASH] -m "new message"

just thinking though.

@fredriccliver
Copy link

👍

@Shivkumar13
Copy link

Hello,
What if I want to change the commit message which I have committed through the GitHub website directly.

So basically I don't have the commits locally, I just changed the code in GitHub UI and opened a PR.

How can I change that commit message? Any ideas?

@omaralamoudi
Copy link

These changes seem to apply to the commit message 1st paragraph or title. What if I wanted to reword the 2nd paragraph?

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment