12章 セーブポイント編
12-1

こわしても、戻れる場所を持つ

Git(ギット)
この話を読むと

こわすのが怖くなくなります。

道具をいじって動かなくなると、たいていの人は「やってしまった」と血の気が引きます。ごろも、まさにそうでした。育てた道具を、もっと良くしようと欲張って、あちこち触っているうちに、うんともすんとも言わなくなった。ごろは布団の上で固まりました。

でも、ここで大事なことをひとつ。こわすのは、悪いことではありません。触って動かなくなるのは、前に進んでいる証拠です。問題は、こわすことではなく、戻れないことだけ。だから、戻れる場所さえ持っていれば、もう半分は勝ちなのです。

その「戻れる場所」を作る機能があります。ある瞬間の道具まるごとを、写真みたいに一枚、保存しておく。ゲームで、強いボスの前にセーブするのと同じです。あとで失敗しても、その一枚に一瞬で帰れる。

ふたが外れて煙を出す道具の隣で、昨日の無事なごろを映す保存ランタンを見て安心するごろ

このセーブのしくみ、じつは名前がついています。Git(ギット)といいます。

……と言われても、身構えなくて大丈夫です。この本は、コマンドを暗記する本ではありません。名前は今すぐ忘れてもらってかまいません。覚えるのは、頼み方だけ。Claude Codeに「今の状態をセーブして」と話しかければ、裏で全部やってくれます。

セーブは、一回きりではありません。区切りのいいところで、何回でも打てます。そして、あとから好きな地点に戻れる。戻すのも一言、「さっきのセーブに戻して」でおしまいです。手で元に戻す必要は、もうありません。

開きのクイズ

せっかく作った道具を、直そうとして、動かなくしてしまいました。どっちのごろが、早く復活できるでしょう。

  • A:動いていた昨日のうちに、こまめに「ここまでできた」の印を残していたごろ
  • B:印を残さず、記憶を頼りに、手で元に戻そうとするごろ
実演

ごろは、道具が気持ちよく動いた瞬間に、こう打ちました。

「いまの状態をセーブしておいて。あとで戻せるように」

Claude Codeは、その時点の道具を一枚保存して、「保存しました」と返してきます。それだけ。

ところが、ごろです。この日も調子に乗って、セーブしたことなどすっかり忘れ、道具をいじり倒しました。そして案の定、動かなくなってから「あっ、セーブは?」と気づくのです。あわてて「さっき保存したところに戻して」と頼むと、煙がふっと消えて、昨日の元気なごろが戻ってきました。

ごろは学びました。こわす前に、あかりをつけておく。順番はいつも、そっちです。

ごろはじめの一歩
  • どこで:Claude CodeのデスクトップアプリかWebで、いつも作業している自分のフォルダを開く
  • どうやって:道具がちゃんと動いた瞬間に「ここまでをセーブして」と話しかける
  • きっかけ:次に何かを直そうとする前に、まず一回セーブ。これだけを習慣にする
ごろはじめの一歩

手順(全3ステップ) 1. Claude Codeのデスクトップアプリで、自分のフォルダを一つ開く。 2. 道具が気持ちよく動いた瞬間に「今の状態をセーブして。あとで戻せるように」と話しかける。 3. セーブ後にあえて何か一か所だけいじり、「さっきのセーブに戻して」と頼んで元に戻ることを確かめる。

所要目安: 10分〜15分

>

到達チェック - できたら○ 道具が動いた状態でセーブができた - できたら○ こわして戻すまで、一往復体験できた


あせらず、ゴロゴロ。

実録・やってみた

ごろの手元には、趣味で作った「かんたん家計簿」のフォルダがありました。金額を入れて「たす」を押すと合計が出る、それだけの小さな道具です。ちゃんと動いているうちに、まず一枚セーブしておくことにしました。

このとき手元にあったのは、この三つです。

app.js
index.html
style.css
ごろ
ごろが打った文このフォルダ、今ちゃんと動いています。「うごく家計簿その1」としてセーブしておいて。
相棒
相棒の返答保存しました。「うごく家計簿その1」として記録しています。あとで戻したくなったら、この名前を言ってください。

画面で見えることセーブの一覧に「うごく家計簿その1」の一行が増えました。

ここまではよかったのです。ところがごろは、合計をグラフでも見たくなって、app.js をいじり始めました。書きかけのまま手が止まり、道具はうんともすんとも言わなくなります。あわてて、何が変わったのかを先に聞きました。

ごろ
ごろが打った文あれ、動かなくなった。前回のセーブから、今どこが変わってる?
相棒
相棒の返答app.js の最後を書き換えています。前回はこう閉じていました。
   document.getElementById("sum").textContent = total;
-}
+  // グラフも足そうとして…
+  drawChart(

グラフを足そうとした行が、途中で止まっています。

画面で見えること消えた一行と、足しかけの二行が、赤と緑で並んで見えました。

犯人が分かったところで、直そうと手で戻すのはやめました。動いていたあの一枚に、まるごと帰ればいいのです。ただ、最初の頼み方は、少しあいまいでした。

ごろ
ごろが打った文さっきの状態に戻して。
相棒
相棒の返答戻しました。ただ、戻り先が複数あります。今いじっていた分を消して直前まで戻すのか、それとも一つ前の「うごく家計簿その1」まで戻すのか、どちらでしょう。

画面で見えること戻り先の候補が二つ、名前つきで並びました。

「さっき」だけでは、相棒も戻り先を決めきれなかったのです。ごろは、戻りたい一枚の名前を、はっきり言い直しました。

ごろ
ごろが打った文ごめん、あいまいだった。動いていた「うごく家計簿その1」のセーブまで戻して。今の書きかけは捨てていい。
相棒
相棒の返答承知しました。「うごく家計簿その1」まで戻します。app.js を、その時点の中身に戻しています。

戻したあとの app.js は、こうなりました。

let total = 0;
function add(){
  total += Number(document.getElementById("amt").value || 0);
  document.getElementById("sum").textContent = total;
}

念のため、前回のセーブとの食い違いを確かめると、何も出ませんでした。ずれがゼロ、つまり動いていたあの状態に、ぴたりと帰れたということです。手で直すのを一切やめて、一言で丸ごと帰る。これが、こわしても平気になる正体でした。

この日はこう返ってきました。頼み方や画面の文字は、その時々ですこし違います。大事なのは中身で、「今どこが変わってる?」で犯人を見て、「あのセーブに戻して」で丸ごと帰る、この二手はいつも同じです。

手順
  1. 道具がちゃんと動いた瞬間に、まず一枚セーブする。

    こうした方がいい

    セーブには「◯◯が動いた状態」と一言そえると、あとで戻り先に迷いません。

    ごろはこうしてみた

    「うごく家計簿その1」と名前をつけて保存し、一覧にその一行が残りました。

  2. 次にいじり始める前に、頭の中でもう一度「さっきセーブしたか?」を確かめる。

    こうした方がいい

    こわす前にあかりをつける、順番はいつもそっちです。

    ごろはこうしてみた

    ここを飛ばしてグラフをいじり始め、案の定つまずきました。

  3. 動かなくなったら、手で直す前に「今どこが変わってる?」と聞く。

    こうした方がいい

    犯人を先に見ると、どこまで戻せばいいかが分かります。

    ごろはこうしてみた

    app.js の閉じが消えて、足しかけの行が残っているのが赤と緑で見えました。

  4. 「あのセーブに戻して」と、名前を指して丸ごと帰る。

    こうした方がいい

    一行ずつ直そうとせず、動いていた一枚にまるごと帰るほうが速くて確実です。

    ごろはこうしてみた

    一言で app.js が元通りになり、また動きました。

  5. 戻れたかを、食い違いで確かめる。

    こうした方がいい

    「今、前回のセーブから何が変わってる?」がゼロなら、完全に帰れています。

    ごろはこうしてみた

    何も出ず、ずれゼロを確認できました。

うまくいったかの確かめ方

戻したあとに道具がまた動くこと、そして「前回のセーブから何が変わってる?」に「変わっていません」と返ってくること。この二つがそろえば、動いていたあの時に無事帰れています。

答えタップして答え合わせ
ごろ

Aです。

印(セーブポイント)さえ残っていれば、失敗しても「動いていたあの時」に一瞬で帰れます。Bは、何をどう変えたか思い出せなくなって、朝までさまようことになります。この印のしくみの名前がGitですが、名前は覚えなくて大丈夫。頼み方だけ覚えます。

ごろあなたの番3分

そのまま使える文例です。コピーして、自分の言葉に少し変えて使ってみてください。

これから見た目を大きく変えます。作業を始める前に、いったんセーブを一つ打っておいて。

さっき打ったセーブから、今のいじった分がどう変わったか、ざっくり日本語で教えて。

増補もっと知りたい人へ (3)
深掘り

なぜ、一言で「戻れる」のでしょう。セーブは、道具全体を毎回まるごと複製しているわけではありません。前のセーブから「どこが変わったか」の差分だけを、小さな印として重ねていきます。だから何十回セーブしても、置き場所はそれほど太りません。そして印には、前の印から順につながる一本の線が引かれています。この線をたどると、いつでも過去のどの一点へでも戻れます。変えた履歴が消えずに全部つながって残っている、これがセーブの正体です。

もうひとつ、大事な性質があります。セーブは「上書き」ではありません。新しいセーブを打っても、前のセーブは消えずに残ります。ふつうのファイル保存だと、上書きした瞬間に前の中身は消えてしまいますよね。セーブはその逆で、打つたびに過去が積み重なっていく。だから安心して、区切りのいいところで何度でも打てるのです。

Claude Codeに「セーブして」と頼むと、裏でこの印を一つ足す作業をしてくれます。読者が差分だの履歴だのを意識する必要はありません。ただ、こういう仕組みだから戻れるのだと分かっていると、こわす手が軽くなります。戻れる、というのは気休めではなく、履歴がちゃんと残っているという事実に支えられているのです。

例をもっと

このフォルダが今ちゃんと動いています。「動いた状態その1」としてセーブしておいて。あとで戻せるように。

これから見た目を大きく変えます。作業を始める前に、いったんセーブを一つ打っておいて。

さっき打ったセーブから、今のいじった分がどう変わったか、ざっくり日本語で教えて。

趣味の家計簿ツールをいじる前に、今日の分をセーブ。もし壊したら「今朝のセーブに戻して」で帰れるようにしておきたい。

(医療者向け・ダミーデータ前提)学習用に作った症例クイズのひな型が動きました。中身は架空の練習用データだけです。この状態をセーブしておいて。

ごろつまずき集
  • 症状:セーブしたつもりが、戻すと何も変わっていない。原因:セーブを打つ前の状態と、打ったあとの状態が同じだった(変更がまだ入っていない)。一手:「今、前回のセーブから何が変わってる?」と先に聞いて、差分があるのを確かめてからセーブします。
  • 症状:どのセーブに戻せばいいか分からない。原因:セーブに名前をつけず、ただ数だけ増やしていた。一手:「セーブの一覧を、いつ何をした状態か分かるように見せて」と頼み、次からは「◯◯が動いた状態」と一言そえてセーブします。
  • 症状:戻したら、今書いていた分まで消えた。原因:まだセーブしていない作業は、戻すと巻き戻ります。一手:戻す前に「今の分も念のため別で取っておける?」と一声。戻す、は今より前へ行く操作だと覚えておきます。
  • 症状:そもそも「セーブして」に反応がない。原因:そのフォルダがまだセーブを使える状態になっていないことがあります。一手:「このフォルダでセーブを使えるように準備して」と最初に一度だけ頼みます。
あせらず、ゴロゴロ。
読んだ