本文へスキップ

Blog — 2026.11.04

git add -Aで別の作業を巻き込んだ。Claude Code並行作業の事故

Claude Code で複数のセッションを並行させる人に向けて、git add -A が別の作業を巻き込んだ私たちの事故と、その理由、防ぎ方を書きました。公式の文書の内容は2026年11月時点で確かめたものです。

ブログ

同じフォルダで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つのセッションのうち、どちらのコミットに何が入るかを言えないなら。
すでに開発している方向けのご案内を読んでみてください。

Contact

まずはご相談ください

課題が固まっていなくても構いません。現状をお聞きしたうえで、進め方をご提案します。