Skip to content

古いワークツリーの自動クリーンアップ:中断された並列実行後の残骸を自動削除

原文(日本語に翻訳)

古いワークツリーのクリーンアップを改善 — 中断された並列実行後に残されたワークツリーが自動的にクリーンアップされるようになった

原文(英語)

Improved stale worktree cleanup — worktrees left behind after an interrupted parallel run are now automatically cleaned up

概要

Claude Codeの --worktree-w)フラグを使用すると、gitワークツリーを使って並列にセッションを実行できます。しかし、セッションが途中で中断された場合(プロセスのkillやネットワーク切断など)、ワークツリーのディレクトリが残骸として残ってしまう問題がありました。v2.1.76では、これらの古い(stale)ワークツリーを次回起動時に自動的に検出・削除する機能が追加され、ディスクスペースの無駄遣いやgitリポジトリの肥大化を防ぎます。

基本的な使い方

ワークツリーモードでClaude Codeを起動するだけで、自動クリーンアップが有効になります:

bash
claude --worktree feature-auth

次回ワークツリーモードで起動した際、以前の中断で残されたワークツリーが自動的にクリーンアップされます。

実践例

並列タスクの実行と自動クリーンアップ

複数のタスクを並列で実行する際、一部のプロセスが中断されても残骸を心配する必要がなくなります:

bash
# 複数のワークツリーを同時に起動
claude -w auth-refactor -p "認証モジュールをリファクタリングしてください" &
claude -w test-coverage -p "テストカバレッジを改善してください" &
claude -w docs-update -p "APIドキュメントを更新してください" &

# 途中でプロセスを中断(Ctrl+Cやkillなど)
# → 次回のワークツリー起動時に残骸が自動クリーンアップされる

Remote Controlサーバーモードでのワークツリー管理

Remote Controlのサーバーモードで --spawn worktree を使用している場合も、自動クリーンアップの恩恵を受けられます:

bash
# サーバーモードでワークツリーを使用
claude remote-control --spawn worktree

# セッションが予期せず切断された場合でも
# 次回起動時にワークツリーが自動的にクリーンアップされる

手動クリーンアップの確認

自動クリーンアップに加え、gitのワークツリー一覧を確認することもできます:

bash
# 現在のワークツリー一覧を確認
git worktree list

# ワークツリーの保存場所を確認
ls .claude/worktrees/

注意点

  • 自動実行: クリーンアップはワークツリーモード起動時に自動的に実行されるため、手動での介入は不要です
  • 古いワークツリーのみ対象: アクティブなセッションに紐づくワークツリーはクリーンアップの対象外です
  • gitリポジトリ必須: ワークツリー機能はgitリポジトリ内でのみ使用可能です
  • ディスクスペースの節約: 大規模なリポジトリでは、残留ワークツリーが数百MBを消費する場合があります。自動クリーンアップによりこの問題が解消されます
  • 中断のタイミング: プロセスが正常終了した場合は従来通りクリーンアップされます。今回の改善は、異常終了や強制終了時の残骸に対するものです

関連情報