原文(日本語訳)
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に「現在の作業内容を保ちながら、別のバグ修正も同時に進めて」と依頼した場合:
- Claude Codeが
EnterWorktreeでワークツリーを作成 - 修正前:現在のコミットが含まれず、古い状態から作業開始
- 修正後:現在のすべてのコミットを含む状態から作業開始(正しい動作)
ホットフィックスと機能開発の並行処理
bash
# feature/auth ブランチで作業中(未プッシュのコミットあり)
git checkout feature/auth
# ... 開発作業 ...
# Claude Codeが EnterWorktree で hotfix/urgent-bug ワークツリーを作成
# 修正後:feature/auth の最新状態(未プッシュ含む)から hotfix ブランチが作れる注意点
- この修正はエージェントSDKの
EnterWorktreeツールに適用されます - ワークツリーは
.claude/worktrees/ディレクトリ以下に作成されます - ワークツリー使用後は適切にクリーンアップすることを推奨します(使用されなかった場合は自動削除されます)
EnterWorktreeはユーザーまたはプロジェクト指示(CLAUDE.mdなど)から明示的に指示があった場合にのみ使用されます