You are currently viewing A Comprehensive Guide to Undoing and Reverting Commits in Git

A Comprehensive Guide to Undoing and Reverting Commits in Git

  • Post author:
  • Post category:Git
  • Post comments:0 Comments
  • Post last modified:May 15, 2024

In Git, managing commits is a crucial aspect of maintaining a clean and organized repository. Sometimes, you might need to undo or revert commits due to various reasons such as introducing bugs, committing incorrect changes, or simply wanting to revert to a previous state. This tutorial will guide you through the process of undoing and reverting commits in Git, along with code examples to illustrate each step.


Before you begin, ensure that Git is installed on your system and you have a basic understanding of Git concepts like commits, branches, and the HEAD pointer.

Undoing Commits with git reset

Undo the Last Commit

To undo the last commit while keeping the changes staged:

git reset --soft HEAD^

This command resets the HEAD pointer to the previous commit, preserving the changes in the staging area.

Discard the Last Commit Completely

If you want to completely discard the last commit and all changes:

git reset --hard HEAD^

Be cautious when using git reset --hard as it permanently removes the changes.

Reverting Commits with git revert

Revert a Specific Commit

To revert a specific commit and create a new commit that undoes the changes introduced by that commit:

git revert <commit-hash>

Replace <commit-hash> with the hash of the commit you want to revert.

Revert Multiple Commits

To revert multiple commits, specify a range of commits:

git revert <start-commit-hash>..<end-commit-hash>

This command reverts all commits starting from <start-commit-hash> up to <end-commit-hash>.


Undoing and reverting commits in Git are essential skills for managing your project’s history effectively. By following the steps outlined in this tutorial and using the provided code examples, you can confidently handle commit modifications in your Git repository.

Remember to use these commands with caution, especially when dealing with git reset --hard, as it can result in permanent data loss. Always create backups or use Git branches to experiment safely.

Leave a Reply