🔀 Merge Conflict Resolution = Git Mastery
Merge conflicts are inevitable. Mastering conflict resolution makes you a Git expert.
📝 Conflict Resolution Workflow
# 1. Identify Conflicts git status # both modified: src/App.js # 2. View Changes git diff git diff --name-only --diff-filter=U # 3. Resolve Conflicts # Open file and look for: <<<<<<< HEAD // Your changes const user = getUserById(id); ======= // Incoming changes const user = await getUserById(id); >>>>>>> feature-branch # 4. Mark Resolved git add src/App.js # 5. Commit Merge git commit -m "Resolved merge conflicts" # 6. Abort Merge git merge --abort # 7. Use --theirs or --ours git checkout --theirs src/App.js git checkout --ours src/App.js
🎯 Advanced Tools
# Visual Merge Tools git config --global merge.tool vscode git config --global mergetool.vscode.cmd 'code --wait $MERGED' git mergetool # Three-Way Merge git merge --no-ff --no-commit feature-branch # Rebase Instead git checkout feature-branch git rebase main git rebase --continue git rebase --abort # Interactive Rebase git rebase -i HEAD~5 # Cherry-pick git checkout main git cherry-pick abc123 # Stash Before Merge git stash save "WIP before merge" git pull origin main git stash pop
đź’ˇ Conflict Prevention Tips
- Pull and merge frequently
- Communicate about overlapping work
- Keep branches short-lived
- Use feature flags
- Review code with conflict resolution in mind
Merge conflicts are not failures—they’re opportunities to improve collaboration and code quality.
