How to uncommit in git?

Made a mistake in your commit? No worries! Git's flexible nature lets you rewind the tape, allowing you to correct, adjust, or simply reminisce about your code.

git reset HEAD~1

This command moves the HEAD and the current branch pointer to the previous commit, without changing the working directory.

  • Use git reset HEAD~1 to move one step back in your project's timeline. This nudges the current branch pointer back to the previous commit, leaving your changes in the working directory.

  • Opt for git reset --soft HEAD~1 if you wish to uncommit but keep the changes staged, ready for a fresh commit.

  • If you're looking to scrap your last commit entirely (changes and all), use git reset --hard HEAD~1.

Picture your project as a movie reel. Each commit is a frame in your story. Uncommitting simply rewinds the reel, letting you reshoot the scene or even rewrite the script.

  • Unsure about which reset mode to choose? Remember:

    • --soft: Keep your changes staged.

    • --mixed (default): Unstage your changes, but keep them in your working directory.

    • --hard: Discard the changes entirely.

  • Use git reflog to see a history of where HEAD has pointed, making it easier to navigate or even recover from more complex mistakes.


Keep in mind that with great power comes great responsibility. Uncommitting is a powerful tool, but always be cautious, especially when collaborating with others. Happy coding! 🌠