Updating a Git commit


This post goes over how to update a git commit with amend or rebase:

Amend

Updating the most recent commit is very simple with amend:

git commit --amend

This will open the editor with the option to modify the commit message.

If you want to keep the same commit message and not open the editor:

git commit --amend --no-edit

With amend, you can even change metadata information like the author and/or date:

git commit --amend --author="Name <[email protected]>"

Rebase

If the commit is not recent, then you want to use rebase.

First, you’ll want to list out the commits to be interactively rebased:

git rebase -i HEAD~3 # last 3 commits from HEAD

A hash is also accepted:

git rebase -i hash123^ # commits from hash123 to HEAD

The editor will open and change pick to edit for the commit(s) you plan to modify.

Amend the commit:

git commit --amend

And continue:

git rebase --continue

If merge conflicts arise, resolve them. Keep going until the rebase is finished.

Otherwise, you can abort it if you changed your mind or made a mistake:

git rebase --abort

One final note, if the commits are already pushed to a remote branch, it’s advisable not to amend them becase a force push is required to update the branch, which will cause conflicts for collaborators.



Please support this site and join our Discord!