/branch(ブランチ)

スラッシュコマンド
/branch
ブランチ
今のClaudeとの会話を丸ごとコピーして、そこから別系統の会話(枝)を生やすスラッシュコマンド。元の会話はちゃんと残るので、後から /resume で戻れる。コマンドの後ろに枝の名前を書き足せて、省略しても切れるけど後で見分けがつかなくなるので名前付き推奨。エイリアスとして /fork も同じ動きをする

Claude Codeで会話の途中に別案も試したい人向け

Claudeに記事構成やコードのリファクタ方針を1案書いてもらったあと、別アングルも並行で試したい場面で叩く。元の案を捨てて新しいClaudeに頼み直すのはもったいないし、同じClaudeに「もう1パターン」と続けて頼むと文脈が混ざるので、その中間として枝を切って両方を並列で進める時に使う

会話を進めてる途中で「やっぱり別案も試したい」「今の話の続きじゃなくて、もう一段違う方向にClaudeを動かしてみたい」と思う場面があります。/branch はその場面でちょうど使うコマンドで、今この瞬間の会話の状態を保存したまま、そこから別系統の会話を生やします。

切ったあとは新しい枝側に切り替わって作業を続けられて、元の会話はちゃんと残っています。気が変わったら /resume で元の枝に戻れる、そういう作りです。

噛み砕くと、ゲームのセーブデータを2つに分けて両方進める感覚

ゲームで「ここまでクリアしたデータをコピーして、片方で裏ボス挑戦、もう片方で通常ルートを進める」みたいなことをやった経験はないでしょうか。/branch がやってるのはそれの会話版です。

今のClaudeとのやり取りを丸ごとコピーして、新しい枝側で続きを書く。元の枝は触られないまま残るので、両方を行き来できます。

失敗しても怖くないやつ。

大事な前提:これは「巻き戻し」じゃなくて「分岐」

同じClaude Codeの中に Esc を2回叩く「巻き戻し」もあって、初心者ほど混ざりがちです。/branch は巻き戻しじゃありません。今の状態は保ったまま、そこから別ルートを生やすだけです。

つまり巻き戻しは「過去に戻る」、/branch は「今から枝分かれする」。意味が真逆なので、ここを最初に分けておきます。

「料理ブログの記事構成を1案書いたあと、別案も並行で試す」を実演

料理ブログを立ち上げて、Claudeに「初投稿の記事構成を考えて」と頼んだとします。1案は出てきたけど、もう1パターン違う切り口も並行で見たい。そういう時にどう使うのかを順に見ていきます。

ステップ1: まず1案目を最後まで書いてもらう

普通にClaudeに依頼して、初投稿の記事構成(仮に「失敗しないゆで卵の作り方」を時系列で解説する案)を最後まで書いてもらいます。

あなた: 料理初心者向けの初投稿の記事構成を考えて。題材は「失敗しないゆで卵」
Claude: (構成案を提示)
あなた: ありがとう、いったんこれで保存しておきたい

ステップ2: 枝に入る前に1案目の要点を自分用にメモしておく

これは公式仕様じゃなくて運用のコツです。枝を切ったあと元の枝に戻っても、戻った先のClaudeは枝側で何があったかを見ていません(枝は独立した会話系統なので)。だから後で2案を見比べる時には、人間側で両方の要点を持っていないと比較できません。

面倒に感じるかもしれないですが、ここで30秒メモするだけで後の比較が圧倒的に楽になります。エディタかメモアプリに「1案目の要点:時系列構成・初心者向け・所要時間は10分・ステップは5つ」みたいな箇条書きで残しておきます。

ステップ3: そこで /branch を叩く

1案目を残したまま、別案を試す枝を切ります。枝に名前を付けられるので、後から見分けやすい名前にしておくのがおすすめです。

あなた: /branch yude-tamago-alt

枝の名前は省略しても切れますが、名前なしで増やしていくと /resume の一覧画面で見分けがつかなくなります。料理用・別案・実験用などラベル感覚で付けておくと後で楽です。

ステップ4: 枝側で別の切り口を試す

枝に切り替わっているので、ここから別案を頼みます。元の「ゆで卵」案には影響しません。

あなた: さっきの記事構成だけど、時系列じゃなくて
「失敗パターン3つ → それぞれの対策」の構成に変えて
Claude: (別構成案を提示)

ここで初心者がやりがちな勘違いがあります。枝側でClaudeに「さっきの構成案」と言ったとき、Claudeはちゃんと元の話の続きを覚えています。枝を切ったあとの新しい会話だけがフレッシュになるわけじゃありません。今までのやり取り全部を持ったまま分岐したので、コピー直後の枝の中身は元と同じです。

ただし「枝側で進めたあとの内容」は元の枝には流れていきません。ここから先の話は枝側だけで完結します。

ステップ5: 別案を書ききって、枝側の要点もメモしておく

枝側で別案を最後まで書いてもらいます。書き終わったら、今度は枝側の要点も同じようにメモしておきます。「2案目の要点:失敗パターン構成・失敗3パターンと対策・h2は4つ」みたいな粒度で十分です。

このメモが後でモノを言います。

ステップ6: 元の案に戻りたい時は /resume

/resume を叩くと、これまで作った枝の一覧が出てきます。元の「ゆで卵時系列」案の枝を選んで戻れます。

あなた: /resume
(枝一覧が表示される)
- yude-tamago-alt(今ここ)
- 元の会話(時系列案)

ステップ7: 2案を見比べて決める(ここが一番つまずくポイント)

戻った元の枝側のClaudeは、枝側で何を書いたかを一切知りません。枝は独立した会話系統なので、元の枝のClaudeにとって枝側の会話は存在しない別世界です。だからここで「両方の案を比べて」と頼んでも、元の案しか出してくれません。

比較するには2通りのやり方があります。

1つは、ステップ5でメモした「2案目の要点」を元の枝のClaudeにコピペで貼って、「これが別案として出てきた構成です。1案目と比べて評価して」と頼む方法。Claude側に両案の情報を渡せば、ちゃんと比較してくれます。

もう1つは、Claudeに頼まずにステップ2とステップ5で取った自分のメモ2枚を並べて、自分で見比べて決める方法。プロンプト練りやコード方針みたいに、最終判断を自分でしたい時はこっちのほうが速いです。

どっちにしても、人間側でメモを取っておかないと比較自体が成立しません。ここは /branch の構造上どうしても発生する手間なので、ステップ2でのメモ書きを習慣化するのが現実的な対策になります。

つまり /branch は何をしてくれるのか

  • やってくれる: 今の会話を丸ごとコピーして、別系統の続きを始めさせてくれる。元の会話は残るので、後から戻れる
  • やってくれない: 枝側で進めた内容を元の枝に自動で取り込むことはしない。マージは手動。元の枝に戻ったClaudeは枝側のやり取りを一切見られない
  • 意味が薄い場面: 5往復もしてない序盤の会話。/branch 切らずに普通に「別案も出して」と頼むほうが早い

使いどころ3シナリオ

シナリオ1: 副業ブログの記事構成で別アングルも試したい

「ChatGPTでお小遣い稼ぎ」という題材で記事構成を1案書いてもらったあと、別の読者層(主婦向け・学生向けなど)向けの切り口も見たくなる場面。1案目の会話を全部捨てて新しいClaudeに頼み直すのはもったいないし、同じClaudeに「もう1パターン」と続けて頼むと文脈が混ざります。/branch ouchi-blog-housewife みたいに切って、片方は学生向け、もう片方は主婦向けと並行で書かせるのが向いてます。

シナリオ2: コードのリファクタ方針を2通り並行で試したい

家計簿アプリのコードをClaudeに見せて「整理し直して」と頼むとき、「A: 関数を細かく分ける」「B: クラス1個にまとめる」のどっちが読みやすいか判断したい時。1案目を書ききった時点で /branch refactor-class-version と切って、枝側でクラス版を試す。両方の結果を見て決められます。

シナリオ3: プロンプトを練る途中で別の指示文も試したい

「ブログ記事を要約させるプロンプト」をClaudeと一緒に練っている最中、「箇条書きで要約」案と「3文で要約」案のどっちが手応えあるかを並行で見たい場面。練り途中の文脈を共有したまま /branch で枝を切れば、両方の出力を比べられます。プロンプトのテンプレ作りだとこれが一番効きます。

初心者が踏みやすい落とし穴

  • 「ブランチを切ると元の会話が消える」と思って怖がる。公式は preserves the original と明示していて、元の会話は残ります。消えません
  • 巻き戻し(Esc + Esc)と混同する。巻き戻しは過去の状態に戻して、戻った時点から先のやり取りは消えます。/branch は今の状態を保ったまま別系統を生やすので、何も消えません
  • 枝の名前を省略してポンポン切ってしまう。名前を付けずに /branch だけ叩くと、後から /resume で一覧を見たときにどれがどれか分からなくなります。名前を必ず付ける癖をつけたほうが安全
  • 元の枝に戻ったClaudeが枝側の会話も覚えていると思い込む。覚えていません。枝は独立した会話系統なので、戻った先のClaudeにとって枝側のやり取りは存在しない別世界です。両案を比較したい時は、人間側でメモを取って手で渡す必要があります
  • 枝側で書いた内容が元の会話に自動反映されると思ってる。されません。枝はあくまで別系統で、手で持ち帰る必要があります
  • /fork は消えた」と勘違いする/fork はエイリアスとして残っていて、普通に使うと /branch と同じ動きになります。ただし CLAUDE_CODE_FORK_SUBAGENT=1 という設定値をセットしている時だけ、/fork は別物(裏で動く子分Claudeを起動するコマンド)に変わります
  • 枝を増やしすぎて把握できなくなる。枝を切るたびに /resume の一覧が長くなります。1セッションで2〜3本までを目安にして、不要な枝は使い終わったらメモだけ取って忘れる運用が現実的

書き方

/branch [枝の名前]

やってみるとこうなる

入力

/branch yude-tamago-alt

出力例

(枝に切り替わり、ここからのやり取りは新しい枝側で記録される。元の会話は残っていて、/resume で戻れる)

このページに出てきた言葉

枝(ブランチ)
元の会話から分かれて伸びた、別系統のやり取り。木の枝のように1本の幹から複数本に分かれていく
会話の状態
Claudeに今まで読ませたファイル・指示・Claudeが返した答え、その全部をひっくるめた今この瞬間までのやり取り全体
独立した会話系統
元の枝と枝側で、Claudeが見ている会話履歴がそれぞれ別物になっている状態。元の枝のClaudeは枝側で何が話されたかを見られないし、その逆もまた同じ
エイリアス
別名のこと。<code>/fork</code> と打っても <code>/branch</code> と打っても同じ動きをするのは、/fork が /branch の別名として登録されているから
CLAUDE_CODE_FORK_SUBAGENT
Claude Codeを起動する前にパソコンに覚えさせておく設定値の1つ。値を 1 にセットして起動すると、<code>/fork</code> が <code>/branch</code> の別名ではなく裏で動く子分Claudeを起動するコマンドに切り替わる
巻き戻し(Esc + Esc)
過去の会話状態に戻す機能。戻った時点から先のやり取りは消える。/branch とは別物で、/branch は今の状態を保ったまま別系統を生やす
マージ
2つに分かれたものを1つに合体させること。/branch で切った枝の内容を元の枝に持ち帰るには、自分で必要な部分をコピーして戻す必要がある

関連項目

公式ドキュメント

https://code.claude.com/docs/en/commands

-

← 戻る