AIの鬼
#新モデル Zenn AI

Claude Code の --worktree が終了時に消える問題を git worktree lock で防ぐ

Claude Code の --worktree が終了時に消える問題を git worktree lock で防ぐ(内容を表す図ではないイメージ画像)
イメージ

Claude Codeを--worktreeで起動してコミットなしで/exitすると、worktreeが無言削除される。「Keep worktree / Remove worktree」のダイアログすら出ない。これはバグではなく仕様で、公式ドキュメントにも明記されている。クリーンな状態なら自動消去、変更がある場合だけダイアログ出力という設計だ。ただこれに異議を唱えるissueは複数立っていて、10日分の未コミット作業が無言削除されたケースも報告されている。

この問題は`git worktree lock`で守れる。Claude Codeは起動時にPID入りのreasonで自分のlockをかけ、終了時にそのreasonを読み直す。その形式に一致しないreasonでlockされていれば「自分が書いたlockではない」とみなして削除をやめるという設計だ。セッション中に別ターミナルから、Claude Codeがかけたlockを外して自分の理由で再度ロックする。すると/exitしても消えない。簡単なシェルスクリプトをSessionStart hookに登録すれば、claude --worktreeで起動した直後に自動で再ロックされる。

ここが実務的だ。Claude Codeが「自分でかけたlockは削除対象にしない」という設計により、「別の人間が守りたい」という意思が機械的に尊重される。UIのダイアログ出力より、自動化の徹底さの方が、実際のユーザーニーズを反映している。調査だけして戻すパターンが多い環境なら、SessionStart hookで自動pinすることで、毎回の手動入力を減らせる。

※ 上記は配信元記事をもとにAIの鬼編集部が要約・再構成したものです。正確な内容は出典元をご確認ください。

御社でもAIを使ってみませんか
まずはここから 御社でもAIを使ってみませんか? 御社の実際の業務を題材に、AIで何ができるかを一緒に考えます。 「ChatGPTの使い方」を教えるだけの研修ではありません。 AI研修・AI活用相談 →