resolve-git-conflicts
정보
이 Claude Skill은 개발자들이 병합(merge), 리베이스(rebase), 체리픽(cherry-pick) 또는 스태시(stash) 작업 중 발생하는 Git 충돌을 안전하게 해결하도록 도와줍니다. 사용자가 충돌 원인을 파악하고, 충돌 마커를 해석하며, 해결 전략을 선택하고, 작업을 안전하게 계속하거나 중단하는 과정을 안내합니다. Git이 충돌을 보고하거나 실패한 병합/리베이스 시도를 복구해야 할 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/resolve-git-conflictsClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
name: resolve-git-conflicts description: > 使用安全的恢复策略解决合并和变基冲突。涵盖识别冲突来源、读取冲突标记、 选择解决策略,以及安全地继续或中止操作。适用于 git merge、rebase、 cherry-pick 或 stash pop 报告冲突、git pull 导致更改冲突,或需要安全 中止并重新开始失败的合并或变基操作。 locale: zh-CN source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: git complexity: intermediate language: multi tags: git, merge-conflicts, rebase, conflict-resolution, version-control
解决 Git 冲突
识别、解决并从合并和变基冲突中恢复。
适用场景
git merge或git rebase报告冲突git cherry-pick无法干净应用git pull导致更改冲突git stash pop与当前工作区冲突
输入
- 必需:存在活跃冲突的仓库
- 可选:首选解决策略(ours、theirs、手动)
- 可选:关于哪些更改应优先的上下文信息
步骤
第 1 步:识别冲突来源
确定引起冲突的操作:
# Check current status
git status
# Look for indicators:
# "You have unmerged paths" — merge conflict
# "rebase in progress" — rebase conflict
# "cherry-pick in progress" — cherry-pick conflict
状态输出会告知哪些文件存在冲突以及当前进行中的操作。
预期结果: git status 显示列在"Unmerged paths"下的文件,并指示当前活跃的操作。
失败处理: 若 git status 显示工作区干净但预期存在冲突,则操作可能已完成或已中止。检查 git log 查看近期活动。
第 2 步:读取冲突标记
打开每个冲突文件,定位冲突标记:
<<<<<<< HEAD
// Your current branch's version
const result = calculateWeightedMean(data, weights);
=======
// Incoming branch's version
const result = computeWeightedAverage(data, weights);
>>>>>>> feature/rename-functions
<<<<<<< HEAD到=======:当前分支的版本(或正在变基到的分支)=======到>>>>>>>:传入的更改(被合并的分支或正在应用的提交)
预期结果: 每个冲突文件包含一个或多个带有 <<<<<<<、======= 和 >>>>>>> 标记的块。
失败处理: 若未找到标记但文件显示为冲突,可能是二进制文件冲突或"已删除 vs 已修改"冲突。使用 git diff --name-only --diff-filter=U 查看完整冲突列表。
第 3 步:选择解决策略
手动合并(最常用):编辑文件以逻辑方式合并两侧更改,然后删除所有冲突标记。
采用我方(保留当前分支版本):
# For a single file
git checkout --ours path/to/file.R
git add path/to/file.R
# For all conflicts
git checkout --ours .
git add -A
采用对方(保留传入分支版本):
# For a single file
git checkout --theirs path/to/file.R
git add path/to/file.R
# For all conflicts
git checkout --theirs .
git add -A
预期结果: 解决后,文件包含正确的合并内容,不残留任何冲突标记。
失败处理: 若选择了错误的一侧,可从合并基础重新读取冲突版本。在合并过程中,git checkout -m path/to/file 会重新创建冲突标记,让你重新尝试。
第 4 步:将文件标记为已解决
编辑完每个冲突文件后:
# Stage the resolved file
git add path/to/resolved-file.R
# Check remaining conflicts
git status
对"Unmerged paths"下列出的每个文件重复此操作。
预期结果: 所有文件从"Unmerged paths"移动到"Changes to be committed",任何文件中均不残留冲突标记。
失败处理: 若 git add 失败或标记仍然存在,请重新打开文件,确保所有 <<<<<<<、======= 和 >>>>>>> 行已被删除。
第 5 步:继续操作
所有冲突解决后:
合并操作:
git commit
# Git auto-populates the merge commit message
变基操作:
git rebase --continue
# May encounter more conflicts on subsequent commits — repeat steps 2-4
cherry-pick 操作:
git cherry-pick --continue
stash pop 操作:
# Stash pop conflicts don't need a continue — just commit or reset
git add .
git commit -m "Apply stashed changes with conflict resolution"
预期结果: 操作完成,git status 显示干净的工作区(或在 rebase 过程中移至下一个提交)。
失败处理: 若 continue 命令失败,检查 git status 查看剩余未解决的文件。所有冲突必须解决后才能继续。
第 6 步:必要时中止操作
若解决过于复杂或选择了错误的方法,可安全中止:
# Abort merge
git merge --abort
# Abort rebase
git rebase --abort
# Abort cherry-pick
git cherry-pick --abort
预期结果: 仓库恢复到操作开始前的状态,无数据丢失。
失败处理: 若中止失败(罕见情况),使用 git reflog 找到操作前的提交,并通过 git reset --hard <commit> 恢复。谨慎使用——此操作会丢弃未提交的更改。
第 7 步:验证解决结果
操作完成后:
# Verify clean working tree
git status
# Check that the merge/rebase result is correct
git log --oneline -5
git diff HEAD~1
# Run tests to confirm nothing is broken
# (language-specific: devtools::test(), npm test, cargo test, etc.)
预期结果: 工作区干净,合并历史正确,测试通过。
失败处理: 若解决后测试失败,合并可能引入了逻辑错误,即使语法冲突已解决。请仔细审查差异并修复。
验证清单
- 所有文件中均不残留冲突标记(
<<<<<<<、=======、>>>>>>>) -
git status显示干净的工作区 -
git log中的合并/变基历史正确 - 冲突解决后测试通过
- 未引入意外的更改
常见问题
- 盲目采用一侧:
--ours或--theirs会完全丢弃另一侧。仅在确定某个版本完全正确时使用。 - 代码中残留冲突标记:编辑后始终搜索整个文件中的残留标记。部分解决会导致代码损坏。
- 变基过程中修改提交:在交互式变基过程中,除非变基步骤明确要求,否则不要使用
--amend。改用git rebase --continue。 - 中止时丢失工作:
git rebase --abort和git merge --abort会丢弃所有解决工作。仅在想重新开始时才中止。 - 解决后不运行测试:语法上干净的合并仍可能在逻辑上有误。始终运行测试。
- 变基后强制推送:变基共享分支后,强制推送前请与协作者沟通,因为这会重写历史。
相关技能
commit-changes— 冲突解决后的提交manage-git-branches— 导致冲突的分支工作流configure-git-repository— 仓库设置与合并策略
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
