SKILL.md
readonlyread-only
name
resolve-merge-conflicts
description
解決 Git 合併衝突,只提取未解決的路徑、衝突區塊和精簡差異,而非將整個檔案載入上下文。在合併、變基、揀選或 stash pop 因衝突而停止時,當 `git status` 顯示未合併路徑,或檔案包含衝突標記時使用。
解決合併衝突
概述
在精簡檢視不足之前,不要開啟完整檔案來解決衝突。先從摘要開始,然後一次檢查一個衝突檔案。
工作流程
- 從摘要開始。
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
優先使用此方式而非讀取整個檔案。該腳本只會列印附近的上下文、每個區塊的 ours / base / theirs 部分,以及 ours 和 theirs 之間的精簡統一差異。
- 解決該檔案。
- 在適當情況下,使用
git checkout --ours -- path/to/file或git checkout --theirs -- path/to/file直接採用某一方的內容。 - 否則直接編輯檔案並移除衝突標記。
- 只有在精簡輸出不足以決定正確合併時,才讀取更多檔案內容。
- 重新檢查未解決的檔案。
python3 .agents/skills/resolve-merge-conflicts/scripts/extract_conflict_context.py
git diff --name-only --diff-filter=U
- 驗證解決結果。
- 確保沒有未合併的路徑殘留。
- 確保已解決的檔案中沒有
<<<<<<<、=======或>>>>>>>標記殘留。 - 針對受影響的區域執行目標測試、建置或 lint。
- 將已解決的檔案加入暫存區。
指令
僅摘要
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
備註
- 在直接開啟衝突檔案之前,先使用此腳本。
- 一次解決一個檔案,以保持上下文精簡。
- 預期會遇到基於標記的文字衝突,以及僅索引衝突(例如 add/add 或 modify/delete)。腳本會摘要兩者,並在工作樹檔案沒有衝突標記時,回退到索引階段預覽。






