mcpField
W
worktree

worktree

github.com/civitai開発7.3k59 回インストール今日更新
リポジトリ

worktree について

worktreeは、開発サーバーを実行できる状態に整えながらGit worktreeを作成・管理するコマンドラインスキルです。サブモジュールの初期化、メインworktreeからの.envファイルのコピー、pnpmによる依存関係のインストールを行います。

主な機能

  1. 01ブランチ用worktreeの作成
  2. 02Gitサブモジュールの初期化
  3. 03.envファイルのコピー
  4. 04pnpmによる依存関係のインストール
  5. 05worktreeの一覧表示と削除

活用シーン

  1. 01新機能用worktreeの作成
  2. 02既存ブランチの開発準備
  3. 03worktreeの一覧確認
  4. 04開発後のworktree削除

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/civitai/civitai --skill worktree

インストール後、Claude Code で/worktreeを入力して読み込まれたか確認します。

同梱ファイルcli.mjs

詳細

Worktree セットアップスキル

開発サーバーを実行するために必要なセットアップをすべて行い、git worktree を作成します。手間のかかるセットアップ手順を自動化するため、すぐに作業を始められます。

クイックスタート

# Create a worktree for a new branch
node .claude/skills/worktree/cli.mjs create feature/my-feature

# Create a worktree for an existing branch
node .claude/skills/worktree/cli.mjs create existing-branch

# List all worktrees
node .claude/skills/worktree/cli.mjs list

# Remove a worktree
node .claude/skills/worktree/cli.mjs remove feature/my-feature

実行内容

worktree を作成すると、このスキルは次の処理を行います。

  1. ../model-share-<branch-name> に git worktree を作成します(ブランチ名のスラッシュはダッシュに置き換えられます)
  2. git submodule を初期化します(git submodule update --init --recursive)— event-engine-common に必要です
  3. メインの worktree から新しい worktree に .env をコピーします
  4. 依存関係をセットアップするために pnpm install を実行します(pnpm のコンテンツアドレス可能ストアを利用するため、インストールが高速です)

CLI コマンド

コマンド説明
create <branch>指定したブランチ用の新しい worktree を作成します
listすべての worktree を一覧表示します
remove <branch>worktree を削除します(ディレクトリを削除し、git worktree を整理します)

使用例

# Create worktree for a new feature
node .claude/skills/worktree/cli.mjs create feature/user-auth
# Creates: ../model-share-feature-user-auth

# Create worktree for a bugfix
node .claude/skills/worktree/cli.mjs create fix/login-issue
# Creates: ../model-share-fix-login-issue

# Remove when done
node .claude/skills/worktree/cli.mjs remove fix/login-issue

Worktree を main にマージする

ユーザーから「worktree をマージして」または「main にマージして」と依頼された場合は、次のワークフローに従ってください。

  1. worktree 内で変更をコミットします。

    cd /path/to/worktree
    git add <files>
    git commit -m "feat/fix: description"
    
  2. main を更新してマージします。

    cd /path/to/main-worktree
    git fetch origin && git checkout main && git pull origin main
    git merge <branch-name> --no-edit
    git push origin main
    
  3. worktree とブランチをクリーンアップします。

    # Remove the worktree directory (use --force if needed)
    rm -rf /path/to/worktree
    
    # Delete the local branch
    git branch -d <branch-name>
    
    # Optionally delete remote branch
    git push origin --delete <branch-name>
    
例
# 1. Commit in worktree
cd ../model-share-fix-my-bug
git add src/file.ts
git commit -m "fix: resolve the bug"

# 2. Merge to main
cd ../model-share
git fetch origin && git checkout main && git pull origin main
git merge fix/my-bug --no-edit
git push origin main

# 3. Clean up
rm -rf ../model-share-fix-my-bug
git branch -d fix/my-bug

注意事項

  • ブランチ名にスラッシュが含まれる場合、ディレクトリ名ではダッシュに置き換えられます
  • .env ファイルはシンボリックリンクではなくコピーされるため、必要に応じて worktree ごとに環境をカスタマイズできます
  • pnpm のコンテンツアドレス可能ストアを使用するため、2 回目以降の worktree のインストールは高速です
  • 作成後、新しい worktree で開発サーバーを起動するには /dev-server スキルを使用してください

コメント