Skip to content

原文(日本語訳)

EnterWorktree がドキュメント通りにローカルHEADから新しいブランチを作成するようになりました。以前は origin/<デフォルトブランチ> から作成されており、未プッシュのコミットが失われていました。

原文(英語)

EnterWorktree now creates the new branch from local HEAD as documented, instead of origin/<default-branch> — unpushed commits are no longer dropped

概要

EnterWorktree ツールにバグがあり、新しいワークツリーブランチを作成する際にローカルの作業ブランチ(HEAD)ではなく、リモートのデフォルトブランチ(origin/main など)を起点として使用していました。このため、まだプッシュしていないローカルのコミットがワークツリーに含まれず、作業内容が失われているように見える問題がありました。今回の修正でドキュメント通りの動作となり、ローカルHEADから正しくブランチが作成されます。

基本的な使い方

この修正は自動的に適用されます。EnterWorktree の動作が期待通りになります。

修正前(バグのある動作):

ローカルの状態:
  main ブランチ: コミットA → コミットB → コミットC(未プッシュ)
  origin/main:  コミットA → コミットB

EnterWorktree を実行した場合:
  新しいワークツリーブランチ: コミットA → コミットB のみ
  → コミットC(未プッシュ)が含まれない!

修正後(正しい動作):

ローカルの状態:
  main ブランチ: コミットA → コミットB → コミットC(未プッシュ)

EnterWorktree を実行した場合:
  新しいワークツリーブランチ: コミットA → コミットB → コミットC
  → すべてのローカルコミットが含まれる

実践例

未プッシュの作業を保ったままワークツリーで並行作業

フィーチャーブランチで作業中に、まだプッシュしていない状態でも安全にワークツリーを使って別タスクを並行処理できます。

bash
# 現在の状態:フィーチャー開発中(未プッシュのコミットあり)
git log --oneline
# abc123 Add new authentication logic
# def456 Update user model
# (origin/main はここまで)

# EnterWorktreeで新しいワークツリーを作成
# → 修正後は abc123 も含めた状態でブランチが作成される

エージェントモードでの並行タスク処理

EnterWorktree はClaude Codeのエージェントが並行タスクを処理する際に使用されます。この修正により、エージェントが正しい作業状態を引き継いで作業できます。

例えば、Claude Codeに「現在の作業内容を保ちながら、別のバグ修正も同時に進めて」と依頼した場合:

  1. Claude Codeが EnterWorktree でワークツリーを作成
  2. 修正前:現在のコミットが含まれず、古い状態から作業開始
  3. 修正後:現在のすべてのコミットを含む状態から作業開始(正しい動作)

ホットフィックスと機能開発の並行処理

bash
# feature/auth ブランチで作業中(未プッシュのコミットあり)
git checkout feature/auth
# ... 開発作業 ...

# Claude Codeが EnterWorktree で hotfix/urgent-bug ワークツリーを作成
# 修正後:feature/auth の最新状態(未プッシュ含む)から hotfix ブランチが作れる

注意点

  • この修正はエージェントSDKの EnterWorktree ツールに適用されます
  • ワークツリーは .claude/worktrees/ ディレクトリ以下に作成されます
  • ワークツリー使用後は適切にクリーンアップすることを推奨します(使用されなかった場合は自動削除されます)
  • EnterWorktree はユーザーまたはプロジェクト指示(CLAUDE.mdなど)から明示的に指示があった場合にのみ使用されます

関連情報