はじめに
Claude Codeを使っていると「AIが考えている間に別の作業ができそう」という場面が増えてきました
そういう場合に、会社の方から教えてもらいましたが、git worktree があります
1つのリポジトリから複数のワーキングディレクトリを作れるGitの機能で、ブランチごとに独立した環境を用意できるようです
導入方法も複数ありそうでしたが git-worktree-runner(git gtr) を選択してみました
git-worktree-runnerとは?
coderabbitai/git-worktree-runner はCodeRabbitが作ったCLIツール
- worktreeの作成・削除・一覧表示をシンプルなコマンドで操作
- Claude Code、AiderなどのAIツールをworktree上で即起動
- Cursor、VS Code、Zedなどエディタとの統合
- 設定ファイルの自動コピーやフック機能
インストール
Homebrew (macOS):
brew tap coderabbitai/tap
brew install git-gtr
Script installer (macOS / Linux):
git clone https://github.com/coderabbitai/git-worktree-runner.git
cd git-worktree-runner
./install.sh
インストール後、リポジトリ内でデフォルト設定をします
# Navigate to your git repo
cd ~/GitHub/my-project
# 使うエディタに合わせて
# One-time setup (per repository)
git gtr config set gtr.editor.default cursor
git gtr config set gtr.ai.default claude
基本的な使い方
- worktreeを作る
git gtr new my-feature
- 一覧を確認する
git gtr list
- 削除する
git gtr rm my-feature
Claude と組み合わせる
worktree作成と同時にClaude Codeを起動
--ai(または -a)フラグ をつける
git gtr new my-feature --ai
エディタも同時に開きたい場合は -e -a を組み合わせ
git gtr new my-feature --editor --ai
並列作業の流れ
実際の使い方はこんな感じ
# タスクAとタスクBを同時に進める
git gtr new feature-a --ai # ターミナル1でClaude起動
git gtr new feature-b --ai # ターミナル2でClaude起動
Claude Codeが片方で作業している間、もう一方のworktreeで別タスクを操作できます
作業が終わったら
マージ済みのworktreeをまとめて掃除
git gtr clean --merged
おわりに
まだ使い始めてたばかりで、まだ戸惑ったりしています
メインのリポジトリから枝を作り始めるので、メインリポジトリの伸ばし元が違わないようにしないといけなそう