Git Worktree管理
Git worktreeを使って並列開発を支援するスキル。
重要なルール
作業を開始する前に、必ずこのスキルを使ってworktreeとブランチを作成すること。
worktree作成後は、必ず .claude/settings.local.json のシンボリックリンクを作成すること。 この手順は必須である。スキップしてはならない。シンボリックリンクを作成することで、MCP/コマンド/スキルの許可設定が全worktree間で確実に共有される。
ブランチ命名規則
Conventional Commitに準じた形式でブランチ名を付ける:
code
<type>/<short-description>
利用可能なtype
| type | 用途 |
|---|---|
feat | 新機能追加 |
fix | バグ修正 |
refactor | リファクタリング |
docs | ドキュメント変更 |
style | コードスタイル変更(フォーマットなど) |
test | テスト追加・修正 |
chore | ビルド・設定・依存関係の変更 |
perf | パフォーマンス改善 |
例
code
feat/add-dark-mode fix/like-button-error refactor/api-structure docs/update-readme chore/update-dependencies
コマンド概要
Worktree作成(推奨フロー)
bash
# 1. worktreesディレクトリの確認・作成
ls worktrees 2>/dev/null || mkdir -p worktrees
# 2. 新しいブランチとworktreeを同時に作成
git worktree add worktrees/<branch-name> -b <type>/<short-description>
# 3. 【必須】Claude設定のシンボリックリンクを作成(絶対パスを使用)
# この手順は必ず実行すること。スキップ不可。
# メインリポジトリのルートディレクトリを取得
MAIN_REPO=$(git worktree list --porcelain | grep -m 1 "worktree" | cut -d' ' -f2)
# 既存のsettings.local.jsonを削除してからシンボリックリンクを作成
rm -f worktrees/<branch-name>/.claude/settings.local.json
ln -s "${MAIN_REPO}/.claude/settings.local.json" worktrees/<branch-name>/.claude/settings.local.json
# 例: feat/add-dark-mode ブランチとworktreeを作成
git worktree add worktrees/add-dark-mode -b feat/add-dark-mode
# 【必須】シンボリックリンク作成(この手順を忘れないこと)
MAIN_REPO=$(git worktree list --porcelain | grep -m 1 "worktree" | cut -d' ' -f2)
rm -f worktrees/add-dark-mode/.claude/settings.local.json
ln -s "${MAIN_REPO}/.claude/settings.local.json" worktrees/add-dark-mode/.claude/settings.local.json
Worktree一覧表示
bash
git worktree list
Worktree削除
bash
# worktreeを削除(ブランチは残る) git worktree remove worktrees/<worktree-name> # worktreeをprune(不要な参照を削除) git worktree prune
既存ブランチでworktree作成
bash
git worktree add worktrees/<worktree-name> <existing-branch>
実行手順
- •ユーザーの作業内容を確認する
- •適切なブランチ名を決定する(type/short-description形式)
- •worktreeを作成する
- •メインリポジトリのパスを取得する(
git worktree list --porcelainを使用) - •【必須】既存のsettings.local.jsonを削除してから、Claude設定のシンボリックリンクを絶対パスで作成する(settings.local.jsonをメインリポジトリから参照)。この手順は必ず実行すること。
- •作成したworktreeのパスを報告する
- •作業完了後、worktreeの削除を案内する
ディレクトリ構造
code
blog/
├── (メインリポジトリのファイル群)
├── .gitignore # worktrees/ を除外済み
└── worktrees/
├── add-dark-mode/ # feat/add-dark-mode
├── fix-like-button/ # fix/like-button-error
└── refactor-api/ # refactor/api-structure
注意事項
- •worktreeのディレクトリ名はブランチ名のshort-description部分を使用する
- •同じブランチで複数のworktreeは作成できない
- •作業完了後は
git worktree removeでworktreeを削除すること - •マージ後はブランチも削除すること
- •
.claude/settings.local.jsonはシンボリックリンク(絶対パス)でメインリポジトリと共有される(MCP/コマンド/スキルの許可設定が全worktreeで同期される) - •シンボリックリンクは必ず絶対パスで作成すること(相対パスでは正しく動作しない場合がある)
- •
git worktree add実行時にGitが自動的に.claude/settings.local.jsonをコピーするため、シンボリックリンク作成前に既存ファイルを削除する必要がある