ブログ
同じフォルダで2つ以上の Claude Code を動かしているなら、コミットに入るものを一度確かめてください。
git add -A は、そのセッションの変更だけを選ぶ操作ではありません。
隣のセッションの作りかけも、一緒に入ることがあります。
並行セッションの1つが、別の作業を巻き込みました
私たちの開発で、並行して動かしていたセッションの git add -A が、別の作業を巻き込みました。
ほかのセッションが作業している途中のファイルが、コミットに混ざったのです。
事故の日付は、記録に残っていません。
別の記録には、1日に33セッションを動かした日に事故が集中したとあります。
ただ、どの事故がその日のものかまでは分かりません。
git add -A の範囲は、作業フォルダ全体です
パスを指定しない git add -A は、作業フォルダ全体のファイルを対象にします。
Git の公式の説明によると、追加・変更・削除のすべてが、次のコミットの準備に反映されます。
Git は、どのセッションが書いたファイルかを見分けません。
なので、同じフォルダで動くセッションの作りかけも、区別なく入ります。
「使わない」と書くだけでは足りないと判断しました
書いただけの決まりは破られる、というのが私たちの結論です。
そこで今は、まとめて入れる操作をコマンドの前に止めています。
入れるのは、自分が触ったファイルだけにする形へ寄せました。
この止める仕組みは、私たちの開発キットにも入っています。
ただし、これで事故がなくなると約束するものではありません。
「Claude」「Claude Code」は Anthropic の商標で、私たちのキットは Anthropic が提供・公認しているものではありません。
Claude Code の利用料は別に要ります。
巻き込みを防ぐ方法は、3つあります
次の3つは、キットがなくても試せます。
公式の文書の内容は、2026年11月時点で確かめたものです。
セッションごとに、作業フォルダを分ける
いちばん根本から分ける方法は、worktree(1つのリポジトリから作る、別の作業フォルダ)です。
公式の文書によると、worktree ごとにファイルとブランチが分かれ、履歴とリモートは共有します。
Claude Code では、claude --worktree のあとに名前を付けて起動します。
別の名前でもう一度起動すると、2つ目のセッションも分かれます。
同じフォルダなら、ファイルを名前で指定する
同じフォルダで動かすなら、git add のあとにファイルの名前を書きます。
Claude Code にコミットを頼むときも、入れるファイルを名前で伝えます。
コミットの前に git status を見て、自分が触っていないファイルがないかも確かめます。
フックで、コマンドの前に止める
頼み方に頼らないなら、フック(決まった場面で動くコマンド)を使います。
公式の説明によると、フックは Claude の判断に任せず、決まった場面で動きます。
コマンドを実行の前に止めることもできます。
作ったら、実際にそのコマンドを打って、止まるところを見てください。
私たちも、入れたときはこの確かめ方をしています。
並行を増やす前に、コミットの中身を言えるようにします
2つのセッションのうち、どちらのコミットに何が入るかを言えないなら。
すでに開発している方向けのご案内を読んでみてください。
