Git Reset, Revert, and Restore Cheat Sheet/Discard last commit and local changes

Move HEAD back one commit and discard index and working tree changes.

Section: Reset Basics

Discard last commit and local changes

bash
bash
git reset --hard HEAD~1
Explanation

Very destructive locally. Use only when you are sure you want to discard the changes.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Reset Basics
Undo last commit but keep everything staged
Move HEAD back one commit while preserving index and working tree.
OpenIn sheetbashsame section
Undo last commit and unstage changes
Move HEAD back one commit and leave changes in the working tree.
OpenIn sheetbashsame section
Unstage a single file
Remove a path from the index without changing its contents in the working tree.
OpenIn sheetbashsame section
Reset out of a conflicted merge state
Try to leave local changes intact while backing out of a merge-like operation.
OpenIn sheetbashsame section
Mental model for reset vs restore vs revert
Quick decision guide for the three similarly named commands.
OpenIn sheettext2 tag match
Use reflog after a mistaken reset
Find the previous branch tip after a bad reset.
OpenIn sheetbash2 tag match