using-git-worktrees について
using-git-worktreesは、Git worktreeによる分離した開発環境の準備からテスト、削除までを案内するコーディングエージェント向けスキルです。メインブランチを保ちながら機能開発やバグ修正を並行して進める際に役立ちます。
主な機能
- 01worktreeのディレクトリ確認と選択
- 02新規ブランチ作成と既存ブランチ利用
- 03依存関係の導入と初期テスト実行
- 04worktreeの一覧表示、削除、整理
- 05同期と完了のチェックリスト
活用シーン
- 01機能開発の並行作業
- 02メインの開発を続けながらのバグ修正
- 03変更を退避せずに作業を切り替え
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bbeierle12/ skill-mcp-claude --skill using-git-worktreesインストール後、Claude Code で/using-git-worktreesを入力して読み込まれたか確認します。
同梱ファイル_meta.json
詳細
Git ワークツリーの使用
基本原則
機能ごとの作業を分離し、main をクリーンに保ちます。
Git ワークツリーを使うと、別々のディレクトリで複数のブランチを同時に作業できます。
使用する場面
- 新しい機能に着手するとき
- main の開発を続けながらバグ修正に取り組むとき
- 作業内容を一時退避せずにコンテキストを切り替える必要があるとき
- 作業の流れを明確に分けたいとき
セットアップ手順
ステップ 1:既存のワークツリーディレクトリを確認する
# Check in priority order
ls -d .worktrees 2>/dev/null # Preferred (hidden)
ls -d worktrees 2>/dev/null # Alternative
見つかった場合:そのディレクトリを使用します。
両方ある場合:.worktrees を優先します。
ステップ 2:CLAUDE.md で設定を確認する
grep -i "worktree.*director" CLAUDE.md 2>/dev/null
設定が指定されている場合:確認せずにその設定を使用します。
ステップ 3:ディレクトリがない場合
ユーザーに尋ねます:
No worktree directory found. Where should I create worktrees?
1. .worktrees/ (project-local, hidden)
2. worktrees/ (project-local, visible)
3. ~/.config/superpowers/worktrees/<project-name>/ (global location)
Which would you prefer?
ステップ 4:.gitignore を確認する
# Check if directory pattern in .gitignore
grep -q "^\.worktrees/$" .gitignore || grep -q "^worktrees/$" .gitignore
存在しない場合は追加します:
echo ".worktrees/" >> .gitignore
# or
echo "worktrees/" >> .gitignore
ワークツリーの作成
標準的な作成
# Determine branch name from feature
BRANCH_NAME="feature/descriptive-name"
# Create worktree with new branch
git worktree add ".worktrees/$BRANCH_NAME" -b "$BRANCH_NAME"
# Navigate to worktree
cd ".worktrees/$BRANCH_NAME"
既存のブランチから作成
git worktree add ".worktrees/$BRANCH_NAME" "$BRANCH_NAME"
作成後のセットアップ
依存関係をインストールする
# Node.js
if [ -f package.json ]; then npm install; fi
# Rust
if [ -f Cargo.toml ]; then cargo build; fi
# Python
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi
# Go
if [ -f go.mod ]; then go mod download; fi
初期テストを実行する
# Run test suite
npm test # or appropriate command
# Report status
テストが失敗した場合:失敗内容を報告し、続行するか調査するかを尋ねます。 テストが成功した場合:準備完了と報告します。
ワークツリーの管理
ワークツリーを一覧表示する
git worktree list
ワークツリーを削除する
# After merging feature branch
git worktree remove ".worktrees/feature/branch-name"
# Force remove (if needed)
git worktree remove --force ".worktrees/feature/branch-name"
古いワークツリーを整理する
git worktree prune
ベストプラクティス
命名規則
- 機能には
feature/descriptive-name - バグには
bugfix/issue-number-description - 緊急の修正には
hotfix/critical-issue
ワークツリーの作業対象を絞る
- 1 つのワークツリーにつき 1 つの機能
- 完了したらマージして削除する
- ワークツリーを増やしすぎない
定期的に同期する
# In worktree, get latest from main
git fetch origin
git rebase origin/main
完了チェックリスト
機能が完了したら:
- すべてのテストに合格している
- コードレビューが完了している
- main にマージされている
- ワークツリーが削除されている
- ブランチが削除されている(必要な場合)
# Full cleanup
git checkout main
git pull
git worktree remove ".worktrees/feature/name"
git branch -d feature/name
お知らせテンプレート
ワークツリーの作成開始時:
"I'm using the using-git-worktrees skill to set up an isolated workspace for [feature name]."
完了時:
"Worktree ready at [full-path]
Tests passing ([N] tests, 0 failures)
Ready to implement [feature-name]"
コメント
Markdown 対応