Everyone breaks something in Git sooner or later. These are the situations I see most often, with the fix for each.
I committed to the wrong branch
Move the commit to a new branch, then remove it from the old one:
git branch feature-fix # new branch pointing at the same commit
git reset --hard HEAD~1 # remove the commit from the current branch
git checkout feature-fix
I need to change my last commit message
git commit --amend -m "Better message"
Only do this if you haven't pushed yet.
I want to undo a commit but keep my changes
git reset --soft HEAD~1
Your files stay as they were, and the commit disappears from history.
I changed a file and want to throw the changes away
git restore path/to/file
This cannot be undone, so check with git status first.
I need to switch branches but I'm not ready to commit
git stash
git checkout other-branch
# later
git stash pop
I pushed something and need to undo it safely
Use revert instead of rewriting history. It creates a new commit that cancels the old one:
git revert <commit-hash>
One habit that prevents most problems
Run git status and git diff before every commit. It takes five seconds and catches most mistakes.
What Git mistake taught you the most? Share it below.
Top comments (1)
Handy cheat sheet. The git diff habit before every commit is the one I would highlight, since it catches most mistakes in five seconds. One tip I would add: create aliases for the commands you use most, like st for status and co for checkout, so the fix is quick to type when you are under pressure. Thanks for the clear examples.