resolve-git-conflicts
정보
이 Claude Skill은 개발자가 병합, 리베이스, 체리픽, 스태시 작업 중 발생하는 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: > 安全な回復戦略を用いてマージとrebaseのコンフリクトを解消します。 コンフリクトの原因特定、コンフリクトマーカーの読み方、解消戦略の選択、 操作の続行または安全な中止を網羅。git merge・rebase・cherry-pick・ stash popでコンフリクトが報告された場合、git pullで変更が競合した場合、 または失敗したマージやrebaseを安全に中止して再開する必要がある場合に使用。 locale: ja source_locale: en source_commit: 6f65f316 translator: claude-opus-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コンフリクトの解消
マージとrebaseのコンフリクトを特定し、解消し、回復する。
使用タイミング
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から=======まで: 現在のブランチの内容(またはrebaseのベースとなるブランチ)=======から>>>>>>>まで: 取り込まれる変更(マージされるブランチまたは適用されるコミット)
期待結果: コンフリクトが発生している各ファイルに <<<<<<<、=======、>>>>>>> マーカーを含むブロックが1つ以上存在する。
失敗時: マーカーが見つからないがファイルがコンフリクト状態として表示される場合、バイナリファイルまたは削除と変更の競合の可能性がある。git diff --name-only --diff-filter=U で完全なリストを確認する。
ステップ3: 解消戦略の選択
手動マージ(最も一般的): 両方の変更を論理的に組み合わせるようにファイルを編集し、すべてのコンフリクトマーカーを削除する。
oursを採用(現在のブランチのバージョンを保持):
# 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
theirsを採用(取り込まれるブランチのバージョンを保持):
# 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
rebaseの場合:
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の場合は次のコミットへ進む)。
失敗時: 続行コマンドが失敗する場合、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のマージ/rebase履歴が正確である - コンフリクト解消後にテストが通過している
- 意図しない変更が混入していない
よくある落とし穴
- 一方を盲目的に採用する:
--oursまたは--theirsは相手側を完全に破棄する。一方のバージョンが完全に正しいと確信できる場合にのみ使用する。 - コード内にコンフリクトマーカーを残す: 編集後、必ずファイル全体を検索してマーカーが残っていないか確認する。不完全な解消はコードを壊す。
- rebase中のamend: インタラクティブrebase中は、そのrebaseステップが明示的に要求しない限り
--amendを使用しない。代わりにgit rebase --continueを使用する。 - 中止による作業の損失:
git rebase --abortとgit merge --abortはすべての解消作業を破棄する。最初からやり直す場合にのみ中止する。 - 解消後のテスト未実施: 構文的にクリーンなマージでも論理的に誤っている場合がある。必ずテストを実行する。
- rebase後の強制プッシュ: 共有ブランチをrebaseした後、履歴が書き換えられるため、強制プッシュ前にコラボレーターと調整する。
関連スキル
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개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
