Git Emergency
My pull request has conflicts
Severity Annoying
What just happened
Since you opened the PR, main changed the same lines as you. GitHub can't merge automatically and asks you to choose.
Potential risks
- Resolving in a hurry can drop someone else's change.
Before you run anything
- Rebase or merge: follow your team's rule. Alone on the branch, rebase gives a clean history.
- Small conflicts can also be solved with GitHub's “Resolve conflicts” button.
Recovery steps
- 1
Get the latest main
Nothing changes in your branch yet.
Safe$ git fetch origin - 2
Option A: merge main into your branch
Fix the conflicted files, git add them, commit, push. No force push needed.
Safe$ git merge origin/main# fix the files, then:$ git add .$ git commit$ git push - 3
Option B: rebase on main
Conflicts come commit by commit. Rewrites your branch: force push with lease at the end.
Caution$ git rebase origin/main# fix, git add, then:$ git rebase --continue$ git push --force-with-lease
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 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🚨 A merged PR broke main🚪 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