mkl-resolve-merge-conflict · git:20261015.62d41fe · 2026-10-15 · sha256 e1b0d75bf40c7445
mkl-resolve-merge-conflict git:20261015.62d41feA
Immutable. This exact content never changes and is served at /api/v1/blob/e1b0d75bf40c7445.
---
name: "mkl-resolve-merge-conflict"
description: "Resolve git merge conflicts cleanly by analyzing only 3-way conflict hunks."
---
# Resolve git merge conflicts
Resolve git merge conflicts surgically by isolating only the 3-way conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`) and surrounding context. Never dump entire multi-thousand-line files into the prompt, and never rewrite code outside the conflict boundaries.
## 1. Scan Unmerged Files
Identify conflicting paths without loading file contents:
```bash
git diff --name-only --diff-filter=U
```
## 2. Isolate Conflict Hunks
Extract only the conflict markers and minimal surrounding lines (5-10 lines of context) using `grep -n` or line-targeted reading:
```bash
# Locate conflict markers with line numbers
grep -n -E "^(<<<<<<<|=======|>>>>>>>)" path/to/conflicting_file.py
```
For complex ambiguities, inspect the three-way ancestry using git index stages without pulling whole files:
```bash
# Common ancestor (base)
git show :1:path/to/file.py
# Current branch version (ours / HEAD)
git show :2:path/to/file.py
# Incoming branch version (theirs / target)
git show :3:path/to/file.py
```
## 3. Surgical Resolution Protocol
1. **Preserve Intent**: Integrate both sides when complementary (for example, non-overlapping imports or new methods added simultaneously).
2. **Choose Correct Semantic Precedence**: If one branch refactors an internal call and the other adds a caller, update the caller to use the refactored signature.
3. **Clean Cleanup**: Ensure ALL conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`) are removed completely.
4. **Boundary Invariant**: Touch strictly lines within the conflict zone. Do not reformat unrelated methods, reorder unaffected imports, or alter unrelated comments.
## 4. Verify Resolution Before Staging
Before running `git add`, verify syntax and run the focused test suite:
```bash
# Python syntax check
python3 -m py_compile path/to/conflicting_file.py
# Run affected tests
pytest -q --tb=short path/to/test_affected.py
```
Only stage the resolved file once verification passes:
```bash
git add path/to/conflicting_file.py
```
## Worked Example
### Conflicting Hunk
```python
<<<<<<< HEAD
timeout = 30
retry_count = 3
=======
timeout = 60
backoff_factor = 1.5
>>>>>>> feat/network-retry
```
### Clean Resolution
```python
timeout = 60
retry_count = 3
backoff_factor = 1.5
```