Git Emergency
A merged PR broke main
Severity Serious
What just happened
The change passed review and CI but breaks something in main or in production. Reverting is the fastest safe way back.
Potential risks
- Never reset or force push main: everyone has it.
- To re-merge later, you'll need to revert the revert.
Before you run anything
- Tell the team before acting.
Recovery steps
- 1
One click: Revert on the PR
SafeAt the bottom of the merged PR, โRevertโ opens a new PR that cancels it.
- 2
Or by hand: merge commit
-m 1 keeps main as the main line.
Caution$ git switch main && git pull$ git revert -m 1 <merge-hash>$ git push - 3
By hand: squash-merged PR
It's a single normal commit: no -m needed.
Caution$ git revert <squash-hash>$ git push
These procedures are provided for information only. Read each command and adapt it to your situation before running it. Disclaimer
Other disasters
๐ช I deleted my branch๐จ I pushed directly to main๐ฅ I ran git reset --hard๐งจ I overwrote a colleague's commits๐ I pushed my .env file to GitHub๐ I made a bad merge๐ป I lost uncommitted changes๐ฏ I committed on the wrong branch๐ I'm in โdetached HEADโ stateโ๏ธ I'm stuck in a merge conflict๐ซ My push is rejected (non-fast-forward)๐ My rebase went wrong๐ GitHub rejects a file over 100 MB๐ฅธ I committed with the wrong name or email๐๏ธ I deleted a file and committed itโช I want to undo my last commitโ๏ธ I amended a commit that was already pushed๐งน Too many messy commits to clean up๐ฎ I pushed to the wrong branch๐งญ I rebased onto the wrong branch๐ I need back the changes I reverted๐ฆ git stash pop gave me a conflict๐ I committed a file that should be ignored๐ Git doesn't see my file rename (upper/lower case)๐งจ I ran git clean -fd by mistake๐ฉป My repository is corrupted๐ I forgot to pull before pushing๐ฏ Duplicated lines of code after a mergeโ I added a file I didn't want to (git add)โ๏ธ I made a typo in a commit messageโ๏ธ My commit does too many things๐งบ I lost a stash (drop, clear or pop gone wrong)๐ซฅ I pulled and my code disappeared๐ I cherry-picked the wrong commitโ๏ธ I deleted a branch on GitHub / GitLab๐ฅ I pushed with the wrong GitHub account๐ The repository was renamed or moved๐ท๏ธ I tagged the wrong commit๐ Git says every file is modified, but I changed nothing๐ฆ I committed node_modules (or a build folder)๐ I ran git init in the wrong folder๐งจ My pull request has conflictsโณ My pull request is behind main๐ I have to apply review changes to my PR๐งณ My PR shows commits that aren't mine๐ฏ I opened my PR against the wrong branch๐ช I closed my PR (or deleted its branch) by mistake๐ด The checks of my PR are failing๐ My PR is too big to review๐ด My fork is behind the original repository