settings.json

worktree.baseRef

string既定値fresh記述場所どの設定ファイルでも可

worktree を origin/<デフォルトブランチ>(fresh)から分岐させるかローカルの HEAD(head)から分岐させるかを指定します。デフォルトは fresh で、'head' に設定すると未プッシュのコミットが新しい worktree に引き継がれます。

取りうる値

fresh既定新しい worktree は origin/<デフォルトブランチ> から分岐します。
head新しい worktree は未プッシュのコミットを含む現在のローカル HEAD から分岐します。

記述例

{
  "worktree": {
    "baseRef": "head"
  }
}

使い方・用途

  • --worktree セッションや EnterWorktree ツールなどで作成される worktree の分岐元を、origin/<デフォルトブランチ>(fresh、デフォルト)かローカル HEAD(head)から選択する設定
  • 未プッシュのコミットを worktree に引き継ぎたい場合は "head" を指定することで、作業の中断や隔離をスムーズに行える
  • "head" 指定時に worktree 内からさらに worktree を作る場合、メインチェックアウトではなく現在のワークツリーの HEAD が正しくベースになるよう修正されている
英語原文(公式ドキュメントより)

Whether to branch worktrees from origin/<default> (fresh) or local HEAD (head). Default: fresh. Set to 'head' to preserve unpushed commits in new worktrees. See https://code.claude.com/docs/en/settings#worktree-settings

関連ドキュメント

関連する変更履歴

v2.1.154(1件)

Fixed
リンクされたワークツリー内からサブエージェントを起動したりEnterWorktreeを呼び出したりした際、worktree.baseRef: "head"が現在のワークツリーのHEADではなく、メインチェックアウトのHEADを参照してしまう問題を修正しました。
英語原文を表示
Fixed worktree.baseRef: "head" resolving to the main checkout's HEAD instead of the current worktree's HEAD when spawning subagents or calling EnterWorktree from inside a linked worktree

変更前

既にワークツリーで作業している最中に「さらに別のワークツリー(サブエージェント用)」を作ると、現在の作業内容(コミット前の変更など)が含まれず、古いマスターの状態に戻ってしまうことがありました。

変更後

設定が"head"の場合、現在の作業コンテキストである現在のワークツリーのHEADを正しくベースとして新しいワークツリーが作られます。

ユーザーへの恩恵

複雑な機能を複数のブランチに分けて並行開発している際も、現在の修正内容を維持したままサブエージェントに作業を依頼できるようになります。

関連ドキュメント

v2.1.133(1件)

Added
worktree.baseRef 設定を追加し、作業ツリー作成時のブランチ元を origin/<default> かローカルの HEAD か選択可能になりました
英語原文を表示
Added worktree.baseRef setting (fresh | head) to choose whether --worktree, EnterWorktree, and agent-isolation worktrees branch from origin/<default> or local HEAD. **Note:** the default fresh changes EnterWorktree's base back to origin/<default> (it has been local HEAD since 2.1.128) — set worktree.baseRef: "head" to keep unpushed commits in new worktrees

変更前

新しい作業ツリー(worktree)を作成する際、ブランチの起点となるリファレンスがバージョンによって異なり、未プッシュのコミットが含まれない場合がありました。

変更後

worktree.baseRef 設定により、fresh(デフォルトのブランチ)または head(現在のローカルコミット)のどちらを起点にするか明示的に指定できます。

ユーザーへの恩恵

未プッシュの変更を作業ツリーに引き継ぎたい場合に head を指定することで、作業の中断や隔離をスムーズに行えるようになります。

関連ドキュメント