resolve-merge-conflicts

resolve-merge-conflicts

热门

解决 Git 合并冲突,仅提取未解决路径、冲突块和紧凑差异,而非将整个文件加载到上下文中。在合并、变基、拣选或储藏弹出因冲突停止时,当 `git status` 显示未合并路径时,或当文件包含冲突标记时使用。

124Star
0Fork
更新于 2026/7/10
SKILL.md
readonly只读
name
resolve-merge-conflicts
description

解决 Git 合并冲突,仅提取未解决路径、冲突块和紧凑差异,而非将整个文件加载到上下文中。在合并、变基、拣选或储藏弹出因冲突停止时,当 `git status` 显示未合并路径时,或当文件包含冲突标记时使用。

解决合并冲突

概述

在紧凑视图不足以解决问题之前,无需打开完整文件即可解决冲突。从摘要开始,然后逐个检查冲突文件。

工作流程

  1. 从摘要开始。
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py

使用摘要识别哪些文件未解决、存在哪些索引阶段以及每个文件包含多少个文本块。

  1. 深入一个文件。
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py --file path/to/file

优先使用此方法而非读取整个文件。该脚本仅打印附近的上下文、每个块的 ours / base / theirs 部分,以及 ourstheirs 之间的紧凑统一差异。

  1. 解决文件。
  • 在适当的情况下,使用 git checkout --ours -- path/to/filegit checkout --theirs -- path/to/file 整体采用一方。
  • 否则直接编辑文件并移除冲突标记。
  • 仅在紧凑输出不足以决定正确合并时,才读取更多文件内容。
  1. 重新检查未解决的文件。
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py
git diff --name-only --diff-filter=U
  1. 验证解决方案。
  • 确保没有未合并的路径残留。
  • 确保已解决的文件中不包含 <<<<<<<=======>>>>>>> 标记。
  • 对受影响的区域运行有针对性的测试、构建或代码检查工具。
  • 暂存已解决的文件。

命令

仅摘要

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

单个文件的详细视图

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

所有冲突文件的详细视图

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

JSON 输出

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

调整输出大小

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

备注

  • 在直接打开冲突文件之前,先使用脚本。
  • 一次解决一个文件以保持上下文较小。
  • 预期会遇到基于标记的文本冲突和仅索引冲突,例如添加/添加或修改/删除。脚本会总结这两种情况,并在工作树文件没有冲突标记时回退到索引阶段预览。