âŠī¸ Git Reset = Undo Local Changes
Made a mistake? Git reset undoes local changes. Soft, mixed, hard â choose wisely.
đ Reset Types
# Soft Reset
git reset --soft HEAD~1
# Moves HEAD back
# Changes stay in staging
# Mixed Reset (default)
git reset --mixed HEAD~1
git reset HEAD~1
# Moves HEAD back
# Changes stay in working directory
# Hard Reset
git reset --hard HEAD~1
# Moves HEAD back
# Changes are lost (careful!)
# Reset to specific commit
git reset --hard commit-hash
# Unstage files (mixed)
git reset HEAD file.txt
# Discard changes (hard)
git reset --hard HEAD
git checkout -- file.txt
# Undo reset (reflog)
git reflog
git reset --hard HEAD@{1}
đ¯ Reset Examples
# Undo last commit (keep changes)
git reset --soft HEAD~1
git status
# Changes still staged
# Undo last commit (unstage changes)
git reset HEAD~1
# Changes in working directory
# Undo last commit (lose changes)
git reset --hard HEAD~1
# Changes lost
# Undo multiple commits
git reset --hard HEAD~3
# Undo to specific commit
git log --oneline
# abc1234 Latest commit
# def5678 Previous commit
git reset --hard def5678
# Undo git add
git reset HEAD file.txt
git reset # All files
# Undo file changes
git checkout -- file.txt
git restore file.txt
# Undo git reset (reflog)
git reflog
# abc1234 HEAD@{0}: reset: moving to HEAD~1
# def5678 HEAD@{1}: commit: Latest commit
git reset --hard def5678
# Reset Tips
- Use --soft to keep changes
- Use --hard carefully (loses changes)
- Use git reflog to undo reset
- Use for local, unpushed commits
- Don't reset shared branches
đĄ Reset Tips
- Use –soft to keep changes
- Use –hard carefully (loses changes)
- Use git reflog to undo reset
- Use for local, unpushed commits
- Don’t reset shared branches
“Git reset undoes local changes. Soft, mixed, hard â choose wisely. Essential for Git workflow.”
