Agent Skills by ALSEL
汎用ソフトウェア開発⭐ リポ 41品質スコア 76/100

git-worktree

Gitワークツリーを管理して、分離された並列開発環境を構築できます。ワークツリーの作成、切り替え、クリーンアップを実行する際に使用します。

description の原文を見る

Manage Git worktrees for isolated parallel development. Use when creating, switching, or cleaning up worktrees for parallel bead work.

SKILL.md 本文

Git ワークツリーマネージャー

このスキルは、開発ワークフロー全体で Git ワークツリーを管理するための統合インターフェースを提供します。PR レビューを分離して行う場合でも、複数の機能に並列で取り組む場合でも、このスキルがすべての複雑性を処理します。

このスキルの機能

  • ワークツリーの作成 メインブランチから明確なブランチ名で
  • ワークツリーの一覧表示 現在のステータス付き
  • ワークツリー間の切り替え 並列作業用
  • 完了したワークツリーの自動クリーンアップ
  • 各ステップでの対話的確認
  • .gitignore の自動管理 ワークツリーディレクトリ用
  • .env ファイルの自動コピー メインリポジトリから新しいワークツリーへ

重要: 必ずマネージャースクリプトを使用してください

git worktree add を直接呼び出さないでください。 必ず worktree-manager.sh スクリプトを使用してください。

このスクリプトは生の git コマンドでは処理されない重要なセットアップを行います:

  1. メインリポジトリから .env.env.local.env.test などをコピー
  2. .worktrees.gitignore に入っていることを確認
  3. 一貫したディレクトリ構造を作成
# 正しい方法 - 常にスクリプトを使用
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-name

# 間違った方法 - これを直接実行しないでください
git worktree add .worktrees/feature-name -b feature-name main

このスキルを使用する場合

以下のシナリオでこのスキルを使用してください:

  1. コードレビュー (/workflows:review): ターゲットブランチ (PR ブランチまたはリクエストされたブランチ) にまだいない場合、分離レビュー用のワークツリーを提案
  2. 機能作業 (/workflows:work): ユーザーが並列ワークツリーか実ブランチでの作業を望むかを常に尋ねる
  3. 並列開発: 複数の機能に同時に取り組む場合
  4. クリーンアップ: ワークツリーでの作業完了後

使用方法

Claude Code ワークフロー内

スキルは /workflows:review および /workflows:work コマンドから自動的に呼び出されます:

# レビュー: PR ブランチにいない場合、ワークツリーを提案
# 作業: 常に質問 - 新しいブランチかワークツリーか?

手動使用

bash から直接スキルを呼び出すこともできます:

# 新しいワークツリーを作成 (.env ファイルは自動的にコピー)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login

# すべてのワークツリーを一覧表示
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list

# ワークツリーに切り替え
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login

# .env ファイルを既存のワークツリーにコピー (.env ファイルがコピーされなかった場合)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-login

# 完了したワークツリーをクリーンアップ
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup

コマンド

create <branch-name> [from-branch]

指定されたブランチ名で新しいワークツリーを作成します。

オプション:

  • branch-name (必須): 新しいブランチとワークツリーの名前
  • from-branch (オプション): 作成元の基本ブランチ (デフォルトは main)

例:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login

実行される処理:

  1. ワークツリーが既に存在するかを確認
  2. 基本ブランチをリモートから更新
  3. 新しいワークツリーとブランチを作成
  4. メインリポジトリからすべての .env ファイルをコピー (.env、.env.local、.env.test など)
  5. ワークツリーへの cd 用パスを表示

list または ls

すべての利用可能なワークツリーをブランチと現在のステータス付きで一覧表示します。

例:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list

出力内容:

  • ワークツリー名
  • ブランチ名
  • どれが現在のものか (チェックマーク付き)
  • メインリポジトリのステータス

switch <name> または go <name>

既存のワークツリーに切り替えて、その中へ cd します。

例:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login

オプション:

  • 名前を指定しない場合、利用可能なワークツリーを一覧表示して選択を求めます

cleanup または clean

非アクティブなワークツリーを確認を取った上で対話的にクリーンアップします。

例:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup

実行される処理:

  1. すべての非アクティブなワークツリーを一覧表示
  2. 確認を求める
  3. 選択されたワークツリーを削除
  4. 空のディレクトリをクリーンアップ

ワークフロー例

ワークツリーを使用したコードレビュー

# Claude Code が PR ブランチにいないことを認識
# 提案: "分離レビューにワークツリーを使用しますか? (y/n)"

# 回答: yes
# スクリプトが実行されます (.env ファイルは自動的にコピー):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create pr-123-feature-name

# すべての環境変数付きで分離ワークツリーでのレビュー対象に
cd .worktrees/pr-123-feature-name

# レビュー後、メインに戻る:
cd ../..
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup

並列機能開発

# 最初の機能用 (.env ファイルはコピー):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-login

# その後、2 番目の機能を開始 (.env ファイルもコピー):
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh create feature-notifications

# 持っているものを一覧表示:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list

# 必要に応じて切り替え:
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh switch feature-login

# 完了時にメインに戻ってクリーンアップ:
cd .
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup

主要な設計原則

KISS (シンプルに保つ)

  • 1 つのマネージャースクリプト がすべてのワークツリー操作を処理
  • シンプルなコマンド と合理的なデフォルト
  • 対話的プロンプト が誤った操作を防止
  • 明確な命名 ブランチ名を直接使用

意図的なデフォルト

  • ワークツリーは常に main から作成 (別途指定がない限り)
  • ワークツリーは .worktrees/ ディレクトリに保存
  • ブランチ名がワークツリー名に
  • .gitignore は自動的に管理

安全性重視

  • ワークツリー作成前に 確認
  • クリーンアップ前に 確認 して誤削除を防止
  • 現在のワークツリーは削除しない
  • 明確なエラーメッセージ で問題を報告

ワークフローとの統合

/workflows:review

常にワークツリーを作成するのではなく:

1. 現在のブランチを確認
2. ターゲットブランチ (PR ブランチまたはリクエストされたブランチ) に既にいる場合 -> そこにとどまり、ワークツリーは不要
3. レビュー対象とは異なるブランチにいる場合 -> ワークツリーを提案:
   "分離レビューにワークツリーを使用しますか? (y/n)"
   - はい -> git-worktree スキルを呼び出し
   - いいえ -> 現在のブランチで PR diff を実行

/workflows:work

常に選択肢を提供:

1. 質問: "どのように作業しますか?
   1. 現在のワークツリーで新しいブランチ (ライブ作業)
   2. ワークツリー (並列作業)"

2. 選択肢 1 の場合 -> 通常通り新しいブランチを作成
3. 選択肢 2 の場合 -> git-worktree スキルを呼び出して main から作成

トラブルシューティング

"ワークツリーは既に存在します"

このメッセージが表示される場合、スクリプトは代わりに切り替えるかどうか尋ねます。

"ワークツリーを削除できません: 現在のワークツリーです"

ワークツリーから抜け出した後 (メインリポジトリに戻してから)、クリーンアップを実行します:

cd $(git rev-parse --show-toplevel)
bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh cleanup

ワークツリーで迷った場合

あなたがどこにいるか確認:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh list

ワークツリーに .env ファイルがない場合

ワークツリーが .env ファイルなしで作成された場合 (例: 生の git worktree add 経由)、コピーします:

bash ${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh copy-env feature-name

メインに戻る:

cd $(git rev-parse --show-toplevel)

技術的な詳細

ディレクトリ構造

.worktrees/
├── feature-login/          # ワークツリー 1
│   ├── .git
│   ├── app/
│   └── ...
├── feature-notifications/  # ワークツリー 2
│   ├── .git
│   ├── app/
│   └── ...
└── ...

.gitignore (.worktrees を含むよう更新)

動作原理

  • 分離環境用に git worktree add を使用
  • 各ワークツリーは独自のブランチを持つ
  • 1 つのワークツリーでの変更は他に影響しない
  • メインリポジトリと git 履歴を共有
  • 任意のワークツリーからプッシュ可能

パフォーマンス

  • ワークツリーは軽量 (ファイルシステムリンクのみ)
  • リポジトリの重複なし
  • git オブジェクトの共有で効率化
  • クローンやスタッシュ/切り替えより高速

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
roberto-mello
リポジトリ
roberto-mello/lavra
ライセンス
MIT
最終更新
2026/5/7

Source: https://github.com/roberto-mello/lavra / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: roberto-mello · roberto-mello/lavra · ライセンス: MIT