For each conflicted file:
Read and understand intent:
- Read the FULL file, not just conflict sections
- Use
git log -p --follow -- path/to/file to see recent history
- Use
git blame path/to/file to understand why each side made changes
- Determine: what problem does HEAD solve? What problem does incoming solve? Are they compatible?
Classify and resolve:
Compatible changes (different additions, merged imports) → auto-resolve, keep both
- Confidence: High
- Example: different methods added to same class,
import { A, B } vs import { A, C } → import { A, B, C }
Overlapping changes (same logic modified differently) → combine if possible, explain reasoning
- Confidence: Medium — explain reasoning, may flag for review
- Example: two different optimizations of same function
Incompatible changes (mutually exclusive) → do NOT auto-resolve
- Confidence: Low — explain both options, recommend one, flag for manual review
- Example: one side disabled a feature for security, other side enhanced it