---
id: gh-resolve-merge-conflicts
name: "resolve-merge-conflicts"
url: https://skills.yangsir.net/skill/gh-resolve-merge-conflicts
author: warpdotdev
domain: ai-dev-tools-workflow
tags: ["git", "merge-conflicts", "version-control", "developer-tools", "cli"]
install_count: 28400
rating: 4.60 (120 reviews)
github: https://github.com/warpdotdev/common-skills/tree/main/.agents/skills/resolve-merge-conflicts
---

# resolve-merge-conflicts

> 解决 Git 合并冲突，通过提取未解决路径、冲突块和紧凑差异，而非加载整个文件，从而简化冲突处理流程。适用于合并、变基或拣选操作中断于冲突时，或文件包含冲突标记时。

**Stats**: 28,400 installs · 4.6/5 (120 reviews)

## Before / After 对比

### 合并冲突解决效率

**Before**:

手动解决 Git 合并冲突时，需要打开整个文件，逐行查找并理解冲突，耗时且容易出错，尤其是在文件较大或冲突较多时。

**After**:

通过仅提取冲突路径、冲突块和紧凑差异，开发者可以快速定位并解决问题，显著减少了理解和处理冲突所需的时间和精力。

| Metric | Before | After | Change |
|---|---|---|---|
| 解决冲突时间 | 60分钟 | 10分钟 | -83% |

## Readme

# Resolve Merge Conflicts

## Overview

Resolve conflicts without opening full files unless the compact view is insufficient. Start with a summary, then inspect one conflicted file at a time.

## Workflow

1. Start with a summary.

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py
```

Use the summary to identify which files are unresolved, which index stages exist, and how many text hunks each file contains.

2. Drill into one file.

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py --file path/to/file
```

Prefer this over reading the whole file. The script prints only nearby context, the `ours` / `base` / `theirs` sections for each hunk, and a compact unified diff between `ours` and `theirs`.

3. Resolve the file.

- Take one side wholesale with `git checkout --ours -- path/to/file` or `git checkout --theirs -- path/to/file` when appropriate.
- Otherwise edit the file directly and remove the conflict markers.
- Read more of the file only if the compact output is not enough to decide the correct merge.

4. Re-check unresolved files.

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py
git diff --name-only --diff-filter=U
```

5. Validate the resolution.

- Ensure no unmerged paths remain.
- Ensure no `<<<<<<<`, `=======`, or `>>>>>>>` markers remain in the resolved files.
- Run targeted tests, builds, or linters for the touched area.
- Stage the resolved files.

## Commands

### Summary only

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py
```

### Detailed view for one file

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py --file path/to/file
```

### Detailed view for all conflicted files

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py --all
```

### JSON output

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py --file path/to/file --json
```

### Tune output size

```bash
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py \
  --file path/to/file \
  --context 3 \
  --max-lines 60
```

## Notes

- Use the script before opening conflicted files directly.
- Resolve one file at a time to keep context small.
- Expect marker-based text conflicts and index-only conflicts such as add/add or modify/delete. The script summarizes both, and it falls back to index-stage previews when the worktree file has no conflict markers.


---
*Source: https://skills.yangsir.net/skill/gh-resolve-merge-conflicts*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-resolve-merge-conflicts/markdown*