manage-git-branches
について
このスキルは、開発者が機能開発用のGitブランチ管理、コンテキストの切り替え、マージ済みブランチの整理を支援します。命名規則に基づくブランチ作成、スタッシュを活用した安全な切り替え、上流リポジトリとの同期、マージ済みブランチの削除を扱います。新規作業の開始時、タスク間の切り替え時、機能ブランチのmainブランチとの同期時、プルリクエスト完了後の整理時にご利用ください。
クイックインストール
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/manage-git-branchesこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
name: manage-git-branches description: > Gitブランチの作成、追跡、切り替え、同期、クリーンアップを行います。 命名規約、stashを使った安全なブランチ切り替え、アップストリームとの 同期、マージ済みブランチの削除を網羅。新機能やバグ修正の作業開始、 異なるブランチ間でのタスク切り替え、フィーチャーブランチをmainと 同期する場合、プルリクエストマージ後のブランチ整理に使用。 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, branches, branching-strategy, stash, remote-tracking
Gitブランチの管理
一貫した命名規約に従ってブランチを作成、切り替え、同期、クリーンアップする。
使用タイミング
- 新機能やバグ修正の作業を開始するとき
- 異なるブランチで複数タスクを切り替えるとき
- フィーチャーブランチをmainと同期させるとき
- プルリクエストのマージ後にブランチを整理するとき
- ブランチの一覧表示と内容確認をするとき
入力
- 必須: 少なくとも1件のコミットがあるリポジトリ
- 任意: ブランチ命名規約(デフォルト:
type/description) - 任意: 新規ブランチのベースブランチ(デフォルト:
main) - 任意: リモート名(デフォルト:
origin)
手順
ステップ1: フィーチャーブランチの作成
一貫した命名規約を使用する:
| プレフィックス | 用途 | 例 |
|---|---|---|
feature/ | 新機能 | feature/add-weighted-mean |
fix/ | バグ修正 | fix/null-pointer-in-parser |
docs/ | ドキュメント | docs/update-api-reference |
refactor/ | コード再構造化 | refactor/extract-validation |
chore/ | メンテナンス | chore/update-dependencies |
test/ | テスト追加 | test/add-edge-case-coverage |
# Create and switch to a new branch from main
git checkout -b feature/add-weighted-mean main
# Or using the newer switch command
git switch -c feature/add-weighted-mean main
期待結果: 新しいブランチが作成されチェックアウトされる。git branch に新しいブランチがアスタリスク付きで表示される。
失敗時: ベースブランチがローカルに存在しない場合、先にフェッチする: git fetch origin main && git checkout -b feature/name origin/main。
ステップ2: リモートブランチの追跡設定
新しいブランチを初めてプッシュする際に追跡を設定する:
# Push and set upstream tracking
git push -u origin feature/add-weighted-mean
# Check tracking relationship
git branch -vv
他のメンバーが作成したリモートブランチをチェックアウトするには:
git fetch origin
git checkout feature/their-branch
# Git auto-creates a local tracking branch
期待結果: ローカルブランチが対応するリモートブランチを追跡する。git branch -vv にアップストリームが表示される。
失敗時: 自動追跡が失敗する場合、手動で設定する: git branch --set-upstream-to=origin/feature/name feature/name。
ステップ3: 安全なブランチ切り替え
切り替え前に、作業ツリーがクリーンであることを確認する:
# Check for uncommitted changes
git status
変更が存在する場合、コミットするかstashに保存する:
# Option 1: Commit work in progress
git add <files>
git commit -m "wip: save progress on validation logic"
# Option 2: Stash changes temporarily
git stash push -m "validation work in progress"
# Switch branches
git checkout main
# Later, restore stashed changes
git checkout feature/add-weighted-mean
git stash pop
stashの一覧と管理:
# List all stashes
git stash list
# Apply a specific stash (without removing it)
git stash apply stash@{1}
# Drop a stash
git stash drop stash@{0}
期待結果: ブランチの切り替えが成功する。作業ツリーが切り替え先ブランチの状態を反映する。stashに保存した変更が復元可能な状態にある。
失敗時: 上書きされる恐れのある未コミットの変更によって切り替えがブロックされる場合、先にstashかコミットを行う。git stash は未追跡ファイルをstashに保存できないため、その場合は git stash push -u を使用する。
ステップ4: アップストリームとの同期
フィーチャーブランチをベースブランチと同期させる:
# Fetch latest changes
git fetch origin
# Rebase onto latest main (preferred — keeps linear history)
git rebase origin/main
# Or merge main into your branch (creates merge commit)
git merge origin/main
期待結果: ブランチにmainの最新変更が取り込まれる。コンフリクトがないか、または解消済みである(resolve-git-conflicts を参照)。
失敗時: rebaseでコンフリクトが発生した場合、各コンフリクトを解消して git rebase --continue を実行する。コンフリクトが複雑すぎる場合は git rebase --abort で中止し、代わりに git merge origin/main を試みる。
ステップ5: マージ済みブランチのクリーンアップ
プルリクエストがマージされた後、古くなったブランチを削除する:
# Delete a local branch that has been merged
git branch -d feature/add-weighted-mean
# Delete a local branch (force, even if not merged)
git branch -D feature/abandoned-experiment
# Delete a remote branch
git push origin --delete feature/add-weighted-mean
# Prune remote-tracking references for deleted remote branches
git fetch --prune
期待結果: マージ済みブランチがローカルとリモートから削除される。git branch にアクティブなブランチだけが表示される。
失敗時: git branch -d が未マージのブランチの削除を拒否する。GitHubでsquashマージされた場合、Gitがマージ済みと認識しない場合がある。作業が保存されていることが確実であれば git branch -D を使用する。
ステップ6: ブランチの一覧表示と確認
# List local branches
git branch
# List all branches (local and remote)
git branch -a
# List branches with last commit info
git branch -v
# List branches merged into main
git branch --merged main
# List branches NOT yet merged
git branch --no-merged main
# See which remote branch each local branch tracks
git branch -vv
期待結果: すべてのブランチ、そのステータス、追跡関係が明確に確認できる。
失敗時: リモートブランチが古く見える場合、git fetch --prune を実行して削除済みリモートブランチへの参照をクリーンアップする。
バリデーション
- ブランチ名が合意した命名規約に従っている
- フィーチャーブランチが正しいベースブランチから作成されている
- ローカルブランチが対応するリモートブランチを追跡している
- マージ済みブランチがローカルとリモートの両方から削除されている
- ブランチ切り替え前に作業ツリーがクリーンである
- stashに保存した変更が放置されていない
よくある落とし穴
- mainへの直接コミット: 常にフィーチャーブランチを作成すること。mainに直接コミットするとPRの作成やコラボレーションが困難になる。
- ブランチ作成前のフェッチ忘れ: 古いローカルのmainからブランチを作成すると、最新状態より遅れた状態からスタートする。必ず先に
git fetch originを実行する。 - 長期間のブランチ運用: 何週間も続くフィーチャーブランチはマージコンフリクトを蓄積する。頻繁に同期し、ブランチの存続期間を短く保つ。
- 放置されたstash:
git stashは一時的な保存場所である。長期的な作業の保存には使わず、コミットかブランチを使用する。 - 未マージ作業の削除:
git branch -Dは破壊的操作である。強制削除前にgit log branch-nameで確認する。 - pruneの未実施: GitHubで削除されたリモートブランチは、
git fetch --pruneを実行するまでローカルに残り続ける。
関連スキル
commit-changes- ブランチ上での作業のコミットcreate-pull-request- フィーチャーブランチからのPRオープンresolve-git-conflicts- 同期中のコンフリクト対応configure-git-repository- リポジトリセットアップとブランチ戦略
GitHub リポジトリ
関連スキル
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つのエージェントを割り当てます。
