Claude Media
Claude Code worktree自動作成をオフにできない問題 — Desktopの回避策

Claude Code worktree自動作成をオフにできない問題 — Desktopの回避策

Claude Code Desktopで新しいセッションが必ずworktreeで始まる報告が出ています。チェックボックスの移動先、環境ごとの設定、効かないという報告、手元で確かめる方法をまとめます。

Claude Code Desktopで新しいセッションを始めると、毎回worktreeの中で作業が始まる。この報告が、GitHubの不具合報告anthropics/claude-code#102412に集まっています。報告は2026年10月15日に立ち、10月27日の時点でも未解決(open)です。

先に整理すると、worktreeのスイッチは消えたわけではありません。置き場所が変わっただけ、という報告が出ています。ただし「オフにしたはずの環境でもworktreeに入る」という報告もあり、こちらは原因が確定していません。

何が起きているのか

#102412のラベルは bug / regression / platform:windows / area:desktop です。最初の報告者はWindowsのDesktopで、Claude Code 2.1.206を使っていました。以前はセッションごとに選べたチェックボックスが見つからず、worktreeを強制されているように感じる、という内容です。

その後のコメントで、症状はmacOSでも出ていることが分かります。

  • Windowsの別の利用者: トグルは「同じフォルダで別のセッションが動いているとき」にしか見えない、と書いています
  • macOSのDesktopの利用者(Code tab): 新しいセッションが必ずworktreeを作る、オフにする設定が見つからない、という報告です
  • 別のmacOS利用者(Desktop 3.6556.2): コントロール自体は残っているが、入力欄の横ではなくなった、と書いています

最初の報告のいう「元に戻したい動作」は、worktreeを使うかどうかを新しいセッションの開始時にその場で選べることです。今回の論点は、設定がなくなったかどうかより、選ぶ場所が見えにくくなったことにあります。

整理

報告された症状は3系統

  • スイッチが見つからない

    入力欄の周りにチェックボックスが出ない。操作は環境の編集画面に移っている、という報告が複数あります。

  • 見える条件が限られる

    同じフォルダで別のセッションが走っているときだけトグルが出る、と感じる利用者がいます。

  • オフにしても効かない

    保存した環境のWorktreeをオフにしても、worktreeに入ったという集計が1件出ています。

ドキュメントの説明は「既定はオフ」

Desktopのドキュメントは、GitリポジトリのプロジェクトではWorktreeをオンにしたときだけ、セッションが専用のworktree(プロジェクトの隔離コピー)で動くと説明しています。既定ではオフで、Claudeはプロジェクトのフォルダの中で作業します。オンにする場所は、プロンプトボックスの下の行にあるプロジェクトフォルダのコントロールです。

レイアウトによって、スイッチの場所が違います。

使っている画面Worktreeの切り替え場所
現行レイアウト(通常のセッション)Worktreeの切り替え場所プロンプトボックス下の行のプロジェクトフォルダのコントロール
保存した環境から始めるセッションWorktreeの切り替え場所環境を作る・編集するときのWorktreeの設定
以前のレイアウトWorktreeの切り替え場所ブランチ名の隣、プロンプトボックスの上のworktreeチェックボックス

保存した環境から始めると、行にはプロジェクトフォルダのコントロールが出ません。環境がフォルダを持っているためです。つまり、保存した環境を使っている人は、セッション開始画面にチェックボックスが見えなくて当然です。#102412で「設定が消えた」と感じた人の何割かは、この仕様の変化にぶつかっている可能性があります。

自分のレイアウトが以前のものか現行かは、新しいセッションの画面で見分けます。プロンプトボックスの下に環境セレクターがなければ、以前のレイアウトです。Desktopのバージョンがv2.37337.0より古いと以前のレイアウトのままなので、アップデートで現行に切り替わります。

回避策: 環境の編集画面でWorktreeを外す

コメントで見つかった回避策は、環境の編集画面を開くことです。ある利用者は「チェックボックスは環境の編集にあり、フォルダの一覧のフォルダの横にある」と書いています。

別の利用者は、セッション詳細パネル(右側)のEnvironmentカードを使っています。最初の行の環境名の横に小さな歯車アイコンがあり、そこからEdit environmentを開くと、フォルダごとにWorktreeのチェックボックスが並ぶ、という説明です。

ドキュメントにも、環境の歯車の場所が書かれています。環境セレクターで保存した環境にカーソルを合わせ、歯車アイコンを押すとEdit environmentが開きます。

手順

Worktreeを環境側でオフにする手順

  1. 1

    環境の編集画面を開く

    環境セレクターで保存した環境にカーソルを合わせ、歯車アイコンをクリックします。セッション詳細パネルのEnvironmentカードの歯車でも、同じ編集画面に着きます。

  2. 2

    フォルダごとのWorktreeを確かめる

    Edit environmentのフォルダの一覧に、Worktreeのチェックボックスがあります。worktreeを使いたくないフォルダのチェックを外します。

  3. 3

    その環境から新しいセッションを始める

    保存して、その環境を選んで新しいセッションを始めます。既に始めたセッションの動作は変わりません。

ただし、この手順は「チェックが効く場合」の話です。次の節の報告が当たる場合は、手順どおりにしてもworktreeに入ります。

設定が効かないという報告

コメントの1件は、Desktopの内部ファイルを集計して、環境のworktree設定が守られていない可能性を示しています。環境ごとに保存されたworktreeの値と、実際に始まったセッションの場所を数えた表です。

環境保存されたworktreeworktreeで動いたセッションリポジトリのフォルダで動いたセッション
Beta保存されたworktreefalseworktreeで動いたセッション4リポジトリのフォルダで動いたセッション0
Alpha保存されたworktreetrueworktreeで動いたセッション1リポジトリのフォルダで動いたセッション0
Gamma保存されたworktreetrueworktreeで動いたセッション0リポジトリのフォルダで動いたセッション1

worktree: false の環境から始めた4件が、すべて <repo>/.claude/worktrees/ に置かれたという内容です。Gammaの行は逆向きの例ですが、1件なので弱い根拠だと報告者自身が書いています。環境はDesktop 3.1623.0 / Claude Code 2.1.211 / macOSでの観察です。

この報告は、別のissue #89698が指摘した値と結び付けられています。#89698によると、Desktopの新規セッション画面のチェックボックスの状態は、アプリのlocalStorageの persisted.cc-landing-worktree-enabled に保存されます。そして、~/.claude.json や settings.json には選択の記録が残りません。一度チェックを入れると、その後の新規セッションがすべてworktreeで始まる、というのが#89698の主張です。

これは利用者による解析で、仕組みとして確認されたものではありません。環境の設定とこの保存値のどちらが優先されるのかは、ドキュメントに書かれていません。「環境でオフにしたのに効かない」場合は、不具合報告に追加の事例を書く価値があります。

いま自分がworktreeの中かを確かめる

オフにできないときも、まず「いまのセッションがworktreeの中か」を知ることはできます。セッションのフォルダで、次を実行してもらいます。Claudeに頼んでも、ターミナルで自分で打っても構いません。

git rev-parse --show-toplevel
git branch --show-current
git worktree list

--show-toplevel の結果が <プロジェクトのルート>/.claude/worktrees/ の下なら、worktreeの中です。ドキュメントによれば、Desktopのworktreeは既定でここに作られます。保存先を変えている場合は、Settings > Claude CodeのWorktree locationで決めたフォルダになります。

ブランチ名にも手掛かりがあります。同じ設定画面のBranch prefixは、Desktopがworktreeのブランチ名の先頭に付ける文字列です。Claudeが作ったブランチを見分けやすくするための設定なので、git branch --show-current の結果がそのプレフィックスで始まっていれば、Desktopが作ったworktreeの可能性が高くなります。

git worktree list の出力には、メインのチェックアウトと、いま存在するworktreeがすべて並びます。#89698の報告者は、Claudeの記録に自動作成のworktreeが7つ残っていたと書いています。

CLIは自動でworktreeを作らない

Claude CodeのCLIでは、worktreeは明示した操作でだけ作られます。

  • claude --worktree(-w)で起動したとき
  • isolation: worktree を書いたカスタムサブエージェントを動かしたとき
  • Claudeに「worktreeで作業して」と頼んだとき

ターミナルで普通に claude を起動して、リポジトリのフォルダの中で作業するかぎり、worktreeには入りません。今回のissueの対象は、Desktopの新規セッション画面です。

バックグラウンドのセッションは別枠です。changelogには worktree.bgIsolation: "none" という設定が追加されたとあり、バックグラウンドセッションが EnterWorktree を使わず作業コピーを直接編集できるようにするものです。仕組みはworktree.bgIsolationの記事で扱っています。

同じ週のworktree関連の修正

#102412とは無関係ですが、worktreeまわりでは近い時期に修正が入っています。v2.1.304では、claude --worktree で作業した後、HEADがデタッチされていたり別のブランチに移っていたりしても、終了時に確認なしでworktreeとブランチが消える不具合が直りました。変更の全体はv2.1.304の記事にまとめています。

Desktopで自動的にworktreeが作られると、未コミットの変更を持ったworktreeが残りやすくなります。ドキュメントは、セッションをアーカイブするとき、そのworktreeの未コミットの変更を失うことがあるので、残したい変更は先にコミットするよう勧めています。ローカルセッションでは、アーカイブから約30日後、またはそのセッションを最後に開いた日から約30日後のどちらか遅いほうに、Desktopがworktreeを削除します。

溜まったworktreeの片付けは、agent viewで溜まる.claude/worktreesの掃除と、Desktopの並列セッションの記事で扱っています。

状況別の対処の目安

状況試すこと
入力欄の周りにチェックボックスがない試すこと環境セレクター下のプロジェクトフォルダのコントロールを確認する。保存した環境を使っているなら、環境の編集画面を開く
Desktopが古く、環境セレクターが見えない試すことアップデートして現行レイアウトにするか、以前のレイアウトのチェックボックスを使う
環境でオフにしたのにworktreeになる試すことgit rev-parse --show-toplevel で場所を確認し、#102412に環境のバージョンと再現手順を追記する
すでにworktreeで作業してしまった試すこと変更をコミットしてから、メインのチェックアウトに取り込む。アーカイブより先に確認する

まとめ

今回の報告は2層に分かれます。1つ目は、Worktreeのスイッチが環境の編集画面とプロジェクトフォルダのコントロールに移り、セッション開始時に見つけにくいという使い勝手の問題です。ドキュメントでは「既定はオフ」とされているので、こちらは設定画面をたどれば解消します。

2つ目は、オフにしたはずなのにworktreeに入るという挙動です。これは、1人の集計とlocalStorageの値の解析に基づく報告で、原因はまだ確定していません。作業を始める前に git rev-parse --show-toplevel で場所を確認する習慣が、いちばん確実な自衛になります。全体像はClaude Code Worktree実践ガイドにあります。

この記事を共有:XはてブLinkedIn