ガイド

Claude Code git worktreeで並列開発を加速する完全ガイド【2026年最新】:--worktreeフラグ・subagent連携・クリーンアップまで徹底解説

室谷東吾
監修者室谷東吾(@0x__tom

株式会社MYUUU 代表取締役 / 日本最大級AIコミュニティ「.AI」創設者(累計2,000名超)/ セプテーニ・ホールディングス(電通グループ)と資本業務提携 / 著書「お金を使わず、AIを働かせる『Dify』活用」(ぱる出版、3刷)/ Xフォロワー約2万人

テキトー教師
監修者テキトー教師(@tekitoo_T_cher

.AI 認定講師 / 教育×AIの専門家 / 累計300名以上にAI活用を指導 / 「テキトーに学ぶ」がモットーの実践派講師 / Xアカウント

Claude Code git worktreeで並列開発を加速する完全ガイド【2026年最新】:--worktreeフラグ・subagent連携・クリーンアップまで徹底解説

Claude Code git worktreeで並列開発を加速する完全ガイド【2026年最新】:--worktreeフラグ・subagent連携・クリーンアップまで徹底解説

室谷室谷
今回はgit worktreeの話をしましょう。これ、Claude Codeのユーザーでも意外と使ってない人が多いんですよね・・・
テキトー教師テキトー教師
.AI(ドットエーアイ)のコミュニティのメンバーさんからも「並列で作業したいけどどうするの?」っていう質問が結構来ますね。git worktreeの存在は知っていても、Claude Codeと組み合わせてどう使うかがわからない、という方が多い印象です。
室谷室谷
MYUUUでも全プロジェクトでworktreeを使ってますが、導入前と後で開発スピードが体感で倍くらい変わりました。特に「フィーチャー開発しながらバグ修正も走らせる」っていうパターンが当たり前になってきて。
テキトー教師テキトー教師
講座で教えていて気づいたんですが、worktreeを使うと「コードが衝突する心配なく複数タスクを並列で進められる」って感覚が掴めたとき、受講生さんの開発の仕方が一気に変わるんですよ。それまでは直列でしか考えられなかったのに。
室谷室谷
まさに。git worktreeは「同じリポジトリから複数の作業ディレクトリを作る」仕組みなんですよね。

それをClaude Codeが--worktreeフラグで直接サポートするようになって、使い方がかなりシンプルになった。

git worktreeとは?Claude Codeでなぜ重要か

テキトー教師テキトー教師
改めて整理すると、git worktreeはGit標準の機能で、1つのリポジトリから複数の「作業ツリー」を同時に展開できる仕組みです。通常、1つのリポジトリでは1つのブランチしか同時にチェックアウトできませんが、worktreeを使うと複数のブランチを別々のディレクトリで同時に扱えます。
室谷室谷
Claude Codeの文脈で言うと、これが「並列セッション」の基盤になるんですよね。複数のClaude Codeセッションを同じリポジトリで走らせるとき、それぞれが同じファイルを同時に変更しようとして衝突する・・・という問題がworktreeで解決される。
テキトー教師テキトー教師
コミュニティのメンバーさんがよくやってしまうのが、同じディレクトリで2つのClaude Codeを起動してしまうパターンなんですよ。「片方がAPIを書いて、もう片方がフロントを書けば速いんじゃ?」という発想なんですが、同じファイルを両方が編集しようとして壊れるリスクがある。
室谷室谷
worktreeを使えば、それぞれのClaudeセッションが完全に独立したディレクトリで作業するので衝突しないんですよね。リポジトリの履歴は共有されているので、後でブランチをマージすればいい。

--worktreeフラグの使い方

Claude Code公式ドキュメントのgit worktree解説ページ。--worktreeフラグの使い方とコマンド例が記載されている(公式サイトより)

室谷室谷
Claude Codeの--worktreeフラグは、実行するだけでworktreeの作成とClaudeの起動を一括でやってくれます。コマンドはシンプルで、こんな感じです。
# "feature-auth"という名前のworktreeを作成し、Claude Codeを起動
claude --worktree feature-auth

# 別のworktreeで別のセッションを起動(別ターミナルで)
claude --worktree bugfix-123
テキトー教師テキトー教師
この--worktree feature-authで渡した名前が、そのままworktreeのディレクトリ名とブランチ名になるんですよね。整理するとこういう構造になります。
要素内容
作成される場所<リポジトリルート>/.claude/worktrees/feature-auth/
ブランチ名worktree-feature-auth
ベースブランチリモートのデフォルトブランチ(origin/HEADが指す先)
室谷室谷
名前を省略すると自動でランダムな名前が付くんですよ。claude --worktreeだけで実行すると、bright-running-foxみたいな感じで。

複数タスクを素早く立ち上げたいときに便利です。
テキトー教師テキトー教師
ベースブランチの話は重要で、origin/HEADがリモートのデフォルトブランチを指しています。たとえばGitHubでデフォルトブランチをmainから別のブランチに変更した場合、ローカルの参照が古いままになることがある。

そのときは以下のコマンドで同期できます。
# リモートのデフォルトブランチに合わせて origin/HEAD を更新
git remote set-head origin -a
室谷室谷
これ、地味に詰まるポイントなんですよね。worktreeを作ったら意図しない古いブランチから派生してた・・・というケース、MYUUUでも最初の頃にありました。

並列作業の実践パターン:フィーチャー開発とバグ修正を同時に

git worktreeによる並列開発のアーキテクチャ図。メインリポジトリから2つのworktreeが独立して分岐している構造

テキトー教師テキトー教師
実際にどう使うかを見ていきましょう。一番よくあるのが、フィーチャー開発とバグ修正を並列で進めるパターンです。
室谷室谷
ターミナルを2つ開いて、それぞれでclaude --worktreeを叩く、というだけですね。手順はこうなります。
# ターミナル1: フィーチャー開発用のworktreeで起動
claude --worktree feature-user-profile

# ターミナル2: バグ修正用のworktreeで起動(別ウィンドウ・別タブで)
claude --worktree bugfix-login-error
テキトー教師テキトー教師
この状態で、2つのClaudeが完全に独立した作業ディレクトリで同時に動いています。片方のClaudeがsrc/components/UserProfile.tsxを編集しても、もう片方の作業には一切影響しない。
室谷室谷
これがないと、たとえばフィーチャー開発中に緊急のバグ報告が来たとき「今作業中のコードをstashしてブランチ切り替えて・・・」という手間が発生するんですよね。worktreeがあれば別ディレクトリで普通に作業できる。
テキトー教師テキトー教師
受講生さんに説明するとき「gitのstash地獄から解放される」って言うと反応がいいです(笑)。stashは便利ですが、大きな変更を抱えている途中でのブランチ切り替えはメンタル的に重いので。
室谷室谷
わかりますw MYUUUのエンジニアも「worktree使い始めてからstashをほとんどしなくなった」って言ってましたね。

subagentとworktreeの組み合わせ

室谷室谷
さらに発展した使い方として、subagentのworktree分離があります。Claude Codeに「worktreeを使って並列で作業して」とお願いするか、カスタムsubagentのフロントマターにisolation: worktreeを設定するだけです。
テキトー教師テキトー教師
これが結構強力で、1つのClaudeセッションの中で複数のsubagentがそれぞれ独立したworktreeで並列作業できるんですよね。orchestratorとなるClaudeが全体を管理して、各subagentが自分のworktreeで担当タスクをこなす。
室谷室谷
このツイートでも書いたんですが、Chrome MCPでデザイントークン抽出、git worktreeで並列ビルド、自動マージ、という組み合わせが実際に動くんですよね。個々のツールは誰でも使えますが、「どう組み合わせるか」のアーキテクチャを設計できるかどうかが差になる。
テキトー教師テキトー教師
subagentのworktreeは作業が終わって変更がなければ自動的にクリーンアップされるので、後片付けの手間もないです。この自動化は地味ですが、実務でかなり助かります。

.worktreeincludeで.envファイルをコピーする

Claude Code公式ドキュメントの.worktreeincludeセクション。.envや.env.localを自動コピーする設定方法が説明されている(公式サイトより)

テキトー教師テキトー教師
実際に使い始めると必ず直面するのが「worktreeに.envが入っていない」問題です。worktreeは新規チェックアウトなので、.gitignoreに含まれているファイル(.envや.env.localなど)が引き継がれないんですよ。
室谷室谷
これ、最初は手動でコピーしてたんですが、公式で.worktreeincludeというファイルを使う仕組みが用意されているんですよね。
テキトー教師テキトー教師
.worktreeincludeをプロジェクトルートに置いて、コピーしたいファイルを書くだけです。.gitignoreと同じ書き方なので直感的にわかります。
# .worktreeinclude の例
.env
.env.local
config/secrets.json
室谷室谷
.gitignoreに含まれていて、かつ.worktreeincludeにマッチするファイルだけがコピーされる仕組みです。トラッキングされているファイルは重複コピーされないので、誤って上書きする心配もない。
テキトー教師テキトー教師
--worktreeフラグで作成したworktree、subagentのworktree、デスクトップアプリの並列セッション、全てにこの設定が効くので、一度設定したら全部解決します。

worktreeのクリーンアップと管理

室谷室谷
worktreeを使い終わったあとの管理も整理しておきましょう。Claude Codeを終了したとき、変更の有無でふるまいが変わります。
テキトー教師テキトー教師
整理するとこういう動作になります。
状態Claude Codeの動作
変更なしworktreeとブランチを自動削除
変更あり・コミットあり保持するか削除するかを確認
クラッシュで中断(変更なし、未プッシュコミットなし)次回起動時に自動削除
室谷室谷
「保持」を選んだ場合は.claude/worktrees/にそのまま残るので、後からclaude --worktree feature-authで再開できます。セッションの再開についてはでも詳しく解説しています。
テキトー教師テキトー教師
Gitコマンドで手動管理したい場合は直接git worktreeコマンドを使います。Claude Codeの--worktreeフラグを使わず、自分でworktreeを作ってからClaudeをそのディレクトリで起動する方法も有効です。
# Gitで直接worktreeを作成する場合
git worktree add ../project-feature-a -b feature-a
git worktree add ../project-bugfix bugfix-123

# 作成したworktreeでClaudeを起動
cd ../project-feature-a && claude

# 一覧の確認
git worktree list

# 手動削除
git worktree remove ../project-feature-a
室谷室谷
.claude/worktrees/以外の場所にworktreeを作りたい場合や、特定のブランチからチェックアウトしたい場合は、Gitコマンドの方が柔軟性があります。Claude Codeの--worktreeフラグは「デフォルトブランチから新規ブランチを作って起動」に特化している形ですね。
テキトー教師テキトー教師
.gitignore.claude/worktrees/を追加しておくと、メインリポジトリでworktreeの内容がuntracked filesとして見えなくなるので整理されます。これも実務でやっておきたいポイントです。

subagentとagent teamsとworktree、どう使い分けるか

テキトー教師テキトー教師
ここまで来ると「subagentとagent teamsとgit worktree、何が違うの?」という疑問が出てきますね。整理するとこういう使い分けになります。
アプローチ向いているケース
git worktree(手動並列)自分で複数セッションを管理したい、独立したタスク
subagent + worktree1セッション内でClaudeにworktree管理を任せたい
agent teams複数のClaudeインスタンスが相互にメッセージを送り合って協調したい複雑なタスク
室谷室谷
agent teamsはまだ実験的機能(環境変数CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSの設定が必要)で、subagentとの違いは「エージェント同士が直接通信できるかどうか」なんですよね。worktreeはどちらでも使える基盤技術という位置付け。
テキトー教師テキトー教師
講座で教えていて思うのは、「まず--worktreeフラグで手動並列に慣れてから、subagentのworktree分離に進む」というステップが定着しやすいですね。agent teamsはトークン消費が多いので、本当に複雑な協調作業が必要なときだけ使うイメージです。
室谷室谷
経営的な視点から言うと、並列実行はそのままコスト増にもなります。単純な順序処理なら直列でいい、並列化で得られるスピードがコスト増を上回るかを考える・・・という感覚を持つと実務で判断に迷わなくなります。

よくあるトラブルと解決策

テキトー教師テキトー教師
最後に、実際に使ってみてよく詰まるポイントをまとめておきます。
室谷室谷
一番多いのが「worktreeを作ったら意図しないブランチから派生した」ですね。これはorigin/HEADの参照が古いのが原因なので、git remote set-head origin -aで解決できます。
テキトー教師テキトー教師
あとは「worktreeで.envが使えない」は.worktreeincludeファイルを設置すれば解決。それと「worktreeを削除しようとしたらエラーになる」は、そのworktreeで変更済みのファイルが残っているときに出るエラーです。
室谷室谷
そのときはgit worktree remove --forceで強制削除できますが、未保存の変更が消えるので注意が必要ですね。
テキトー教師テキトー教師
よくあるエラーをまとめるとこうなります。
エラー・症状原因解決策
意図しないブランチから派生origin/HEADが古いgit remote set-head origin -a
worktreeに.envがないgitignoreファイルはコピーされない.worktreeincludeに追記
worktree削除エラー変更済みファイルが残っているgit worktree remove --force
subagentのworktreeが残っているクラッシュ・中断次回起動時に自動削除(または手動でgit worktree remove

よくある質問(FAQ)

Q: git worktreeはGitの標準機能ですか?Claude Code専用ですか?

テキトー教師テキトー教師
git worktree自体はGit 2.5以降に標準搭載されている機能です。Claude Codeの--worktreeフラグは、このGit標準機能をClaude Codeから便利に使えるようにしたものです。

Gitコマンドでworktreeを作り、そのディレクトリでClaudeを起動する方法でも同じことができます。

Q: worktreeのブランチはどこから派生しますか?

室谷室谷
origin/HEADが指すリモートのデフォルトブランチから派生します。maindevelopがデフォルトになっているリポジトリならそこから。

GitHubでデフォルトブランチを変更した場合はgit remote set-head origin -aで同期が必要です。

Q: Claude Code Desktopでもworktreeは使えますか?

テキトー教師テキトー教師
使えます。Desktop版では並列セッションをUIで管理でき、.worktreeincludeも効きます。

CLI版と同じ仕組みが動いているので、コマンドとの互換性もあります。

Q: worktreeと通常のブランチ切り替えの違いは?

室谷室谷
通常のブランチ切り替え(git checkoutgit switch)は同じディレクトリで別のブランチに切り替えるので、現在の作業内容を一度stashするか捨てる必要があります。worktreeは物理的に別のディレクトリに同じリポジトリの別ブランチを展開するので、2つの作業を同時に進められます。

まとめ:Claude Codeでのgit worktree活用はこれだけ覚えれば十分

室谷室谷
今回カバーした内容をまとめると、Claude Codeのgit worktree活用のポイントはシンプルです。
テキトー教師テキトー教師
整理するとこうなります。
  • claude --worktree <名前> で隔離されたworktreeを作成してClaudeを起動
  • 名前省略で自動命名(claude --worktreeのみ)
  • .worktreeincludeを使って.envなどのgitignoreファイルを自動コピー
  • subagentのworktree分離はフロントマターのisolation: worktreeまたはプロンプトで指定
  • 終了時の挙動は変更あり/なしで異なる(変更なし→自動削除、変更あり→確認)
  • Gitコマンドによる手動管理も組み合わせられる
  • .gitignore.claude/worktrees/を追記してリポジトリを整理する
室谷室谷
最初の一歩はclaude --worktree feature-authを打つだけ。これで並列開発の世界に入れますし、慣れてきたらsubagentと組み合わせて自動化する・・・という順番で覚えていくと自然です。
テキトー教師テキトー教師
git worktreeを使いこなせると、Claude Codeのやと組み合わせた本格的な並列開発の土台になります。まずは--worktreeフラグを試してみてください。

出典

.AI TIMES一覧に戻る