How to Undo the Last Commit in Git

A frequent task in Git is undoing the last commit. You’ll do this to correct a mistake: maybe you committed to the wrong branch or included the wrong file. This post walks you through how to do this.

How to undo the last commit without losing changes?

If you need to revert a commit in Git but wish to keep your changes for a recommit, you can use the following command:

shCopy code git reset --soft HEAD~1

This command reverts the last commit but keeps your changes staged, allowing you to adjust and recommit them.

How to undo the last commit and lose changes?

For situations where you want to completely revert a commit in Git, removing all changes it introduced, execute:

shCopy code git reset --hard HEAD~1

This action irreversibly reverts the last commit and all associated changes, so be careful!

How to undo a commit but keep the changes for re-editing?

When your goal is to revert a commit but still keep the changes for further editing in an unstaged state, the appropriate command is:

shCopy code git reset HEAD~1

This reverts the commit and leaves the changes in your working directory, allowing you to modify and stage them as needed.

How to amend the last commit?

Sometimes, instead of wanting to fully revert a commit, you might just want to make adjustments to it. In such cases, git revert a commit action might not be necessary. Instead, you can amend the last commit with:

shCopy code git commit --amend

This command opens your default text editor, letting you change the commit message or add more changes to the commit.

Selecting the right method

Choosing the right method to revert a commit in Git depends on your specific needs:

  • To keep your changes staged, use reset --soft.
  • To remove the last commit and its changes entirely, opt for reset --hard.
  • To revert a commit while keeping your changes for further editing, use reset.
  • To simply adjust the last commit, consider commit --amend.

It's essential to understand the implications of each command, especially when reverting commits that might lead to data loss. By mastering these techniques, you can navigate your Git repository with confidence and precision.

Invite only

We're building the next generation of data visualization.