複数ブランチの開発環境を一瞬で切り替える
Git worktreeを使って、ブランチごとに独立した作業ディレクトリを作成・管理するCLIツールです。
- メインブランチで作業中に、緊急のバグ修正が入った
- 複数の機能ブランチを並行して開発したい
- PRレビュー用に別ブランチをすぐに確認したい
.envなどgitignoreされたファイルも新しい作業環境にコピーしたい
npm install -g wtcomposeプロジェクトのルートに wturbo.yaml を作成:
base_branch: main
# gitignoreされているファイルも新しいworktreeにコピー
copy_files:
- .env
- .env.local# 新しいブランチ用のworktreeを作成
wturbo create feature/awesome-feature
# 作業ディレクトリに移動
cd ../worktree-feature-awesome-feature
# 作業完了後、worktreeを削除
wturbo remove feature/awesome-feature新しいworktreeを作成します。
wturbo create feature/new-feature
wturbo create bugfix/urgent-fix処理内容:
git worktree addでブランチ用の作業ディレクトリを作成copy_filesで指定したファイルをコピーstart_commandを実行(設定時のみ)
オプション:
-p, --path <path>- worktreeの作成場所を指定(デフォルト: 親ディレクトリにworktree-<branch名>で作成)--no-create-branch- 既存のブランチを使用(新規作成しない)
worktreeを削除します。
wturbo remove feature/new-feature処理内容:
end_commandを実行(設定時のみ)git worktree removeでworktreeを削除
オプション:
-f, --force- 未コミットの変更があっても強制削除
現在のworktree一覧を表示します。
wturbo status出力例:
🌿 Git Worktrees (3 total)
→ main: /Users/me/project
feature/auth: /Users/me/worktree-feature-auth
bugfix/login: /Users/me/worktree-bugfix-login
wturbo.yaml, wturbo.yml, .wturbo.yaml, .wturbo.yml のいずれかをプロジェクトルートに配置します。
base_branch: maingitignoreされているファイルや設定ファイルを新しいworktreeにコピー:
copy_files:
- .env
- .env.local
- .claude # ディレクトリも可
- config/local.jsonworktree作成時・削除時にスクリプトを実行:
# 作成後に実行(依存関係のインストールなど)
start_command: ./scripts/setup.sh
# 削除前に実行(クリーンアップなど)
end_command: ./scripts/cleanup.shbase_branch: main
docker_compose_file: ./docker-compose.yml
copy_files:
- .env
- .env.local
- .secrets
- config/
start_command: npm install && npm run db:migrate
end_command: docker compose down
env:
file:
- .env
- .env.local
adjust:
APP_PORT: 1000 # ポート番号に+1000
DB_PORT: 1000| 項目 | 型 | 説明 |
|---|---|---|
base_branch |
string | ベースブランチ名(デフォルト: main) |
docker_compose_file |
string | Docker Composeファイルのパス |
copy_files |
string[] | コピーするファイル/ディレクトリ |
start_command |
string | worktree作成後に実行するコマンド |
end_command |
string | worktree削除前に実行するコマンド |
env.file |
string[] | 環境変数ファイルのリスト |
env.adjust |
object | 環境変数の調整(数値: 加算, 文字列: 置換, null: 削除) |
- Node.js 18+
- Git
MIT