スキル一覧に戻る

resolve-git-conflicts

pjt222
更新日 Yesterday
2 閲覧
17
2
17
GitHubで表示
その他general

について

このClaudeスキルは、マージ、リベース、チェリーピック、スタッシュ操作中にGitコンフリクトを安全に解決する開発者を支援します。コンフリクトの発生源の特定、コンフリクトマーカーの読み取り、解決戦略の選択、操作の安全な継続または中止についてユーザーを導きます。Gitがコンフリクトを報告した場合や、失敗したマージ/リベースの試行から回復する必要がある場合にご利用ください。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/resolve-git-conflicts

このコマンドをClaude 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 mergegit 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 --abortgit merge --abort 会丢弃所有解决工作。仅在想重新开始时才中止。
  • 解决后不运行测试:语法上干净的合并仍可能在逻辑上有误。始终运行测试。
  • 变基后强制推送:变基共享分支后,强制推送前请与协作者沟通,因为这会重写历史。

相关技能

  • commit-changes — 冲突解决后的提交
  • manage-git-branches — 导致冲突的分支工作流
  • configure-git-repository — 仓库设置与合并策略

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/zh-CN/skills/resolve-git-conflicts
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

llamaguard

その他

LlamaGuardは、暴力やヘイトスピーチなど6つの安全性カテゴリーにおいて、LLMの入力と出力をモデレートするMetaの70-80億パラメータモデルです。94〜95%の精度を提供し、vLLM、Hugging Face、Amazon SageMakerを使用してデプロイ可能です。このスキルを使用して、AIアプリケーションにコンテンツフィルタリングと安全策を簡単に統合できます。

スキルを見る

cost-optimization

その他

このClaudeスキルは、リソースの適正サイジング、タグ付け戦略、支出分析を通じて、開発者がクラウドコストを最適化することを支援します。AWS、Azure、GCPにわたるクラウド支出の削減とコストガバナンスの実施のためのフレームワークを提供します。インフラコストの分析、リソースの適正サイジング、または予算制約への対応が必要な際にご利用ください。

スキルを見る

quantizing-models-bitsandbytes

その他

このスキルは、bitsandbytesを使用してLLMを8ビットまたは4ビット精度に量子化し、精度の低下を最小限に抑えつつ50〜75%のメモリ削減を実現します。限られたGPUメモリでより大規模なモデルを実行したり、推論を高速化するのに理想的で、INT8、NF4、FP4などのフォーマットをサポートしています。HuggingFace Transformersと統合され、QLoRAトレーニングや8ビットオプティマイザーを可能にします。

スキルを見る

dispatching-parallel-agents

その他

このClaudeスキルは、複数のエージェントを配備し、3つ以上の独立した問題を並行して調査・修正します。共有状態や依存関係がなく解決可能な、無関係な障害が発生するシナリオ向けに設計されています。中核となる機能は並列問題解決であり、効率を最大化するために独立した問題領域ごとに1つのエージェントを割り当てます。

スキルを見る