🧩 Resolving Complex Git Merge Conflicts Locally
⚠️ Problem
When merging a pull request on GitHub, you may encounter:
"These conflicts are too complex to resolve in the web editor."
This usually means:
- Large structural differences in files
- Binary file conflicts
- Changes scattered across a file
- Multiple developers editing the same areas
🛠️ Solution: Use Git Locally to Resolve
✅ Step 1: Clone the Repository (if not done already)
git clone https://github.com/your-username/your-repo.git
cd your-repo
🔁 Step 2: Checkout the Base Branch (e.g., main
)
git checkout main
git pull origin main
🔀 Step 3: Merge the Source Branch (e.g., feature-branch
)
git merge feature-branch
If there are conflicts, Git will output which files are conflicting.
🧹 Step 4: Resolve Conflicts Manually
Open the conflicted files in your editor. You'll see conflict markers like this:
<<<<<<< HEAD
// Your changes in main branch
=======
// Their changes from feature-branch
>>>>>>> feature-branch
📝 Manually edit the file to keep the correct/combined version.
Then save the file.
✅ Step 5: Mark the File as Resolved
git add path/to/conflicted-file
Do this for each conflicted file you resolve.
💾 Step 6: Commit the Merge
git commit
Git will open the default merge message. You can leave it as-is or edit it.
🚀 Step 7: Push the Changes to GitHub
git push origin main
Now the PR should be marked as merged (or you can close the PR if you’ve pushed directly to main).
🧰 Tips
-
Use
git status
to see unresolved files. -
Use GUI tools like VS Code, Sourcetree, or GitKraken if you prefer visual merge tools.
-
For large repos, make a backup branch before merging:
git checkout -b backup-main-before-merge