メインコンテンツへスキップ
レッスン 8 / 14|28分で読めます

Gitでセーブポイント:壊しても、戻せる

育てている物の「いまの状態」をいつでも戻せる履歴として残し、大胆に改造できるようになる回。難しいコマンドは覚えず、日本語で「セーブして」「戻して」と頼むだけで進めます。

大胆に変えたい。 でも、壊すのが怖い。

前回で、散らかっていた中が、すっきり片づきました。 問題やデータを分類して、見たい切り口で取り出せるようになった。 見通しがよくなると、欲が出ます。

デザインを丸ごと変えたい。 仕組みを作り直したい。 ここを大胆に改造したら、もっと良くなる気がする。

ところが、同じ口で逆のことも思います。 いまうまく動いているのに、いじって壊したら嫌だな。 壊して、戻せなくなったらどうしよう。

この怖さが、手を止めます。 せっかくここまで育てたものを壊したくないから、こわごわ、小さな変更しかできなくなる。 育ちが、ここで止まります。

今日は、この怖さを道具で消します。 GitとGitHub。 ゲームでいうセーブポイントだと思ってください。 いつでも戻せると分かれば、はじめて大胆に挑めます。 コマンドは覚えません。 「セーブして」「戻して」と日本語で言うだけです。

SourceARTICLE
GitHub

コードのセーブポイント(コミット)をクラウドに保管・共有する場所。アカウントは無料。

Web
github.com

今日の出発点を固定する

まず、いまの自分の立ち位置を確認します。

ここまでで、あなたの育てている物は、自分の手で何度も直して、コードの中身も自分の言葉で説明できる状態になっているはずです。 私が一緒に進めている弱点ドリルなら、問題を解くと点数が出て、間違えた問題が分野ごとに分かれて見えるところまで来ています。

別の物を育てている人も同じです。 ゲームでも、自分のアプリでも、「いまうまく動いている状態」が一つある。 今日はその状態を出発点に、もう一段、大きく動かします。

Gitをゲームのセーブポイントにたとえた図。いま動く状態を保存し、大胆に改造し、合わなければ保存地点へ戻る流れが時系列で並んでいる
Gitは、いまの状態を保存してから大胆に試すためのセーブポイントです。戻す前には人間が確認します。

なぜ、いまGitなのか

育てている物がここまで来ると、二つのことが同時に起きます。

一つ目は、さっきの「もっと大きく変えたい」です。 でも壊すのが怖くて、踏み込めない。

二つ目は、これだけ動くと、誰かに見せたくなることです。 私のドリルなら、「同じ試験を受ける研修医に渡したら喜ぶかもな」と思う。 でも今のままだと、自分のPCの中にしかありません。 渡しようがないのです。

「大胆に直せない」と「人に渡せない」。 この二つの壁を、同じ一つの道具がまとめて壊します。 それが今日のGitとGitHubです。 難しい話から入りません。 困りごとが先にあって、それを埋める道具として出てきます。

今日のゴールと、任せ方

今日のゴールは一文です。 いつでも前の状態に戻せる履歴を作り、大胆に改造できるようになり、人に共有する入口に立つこと。

AIにどこまで任せるか。 今日は「中」に置きます。

セーブして、改造して、もし気に入らなければ戻す。 ここまではAIに任せます。 ただし、前の状態を壊す操作、つまり戻す、上書きする手前では、必ず自分が一度確認してから進めます。

カルテに記載を確定する前に、自分の目でもう一度読むのと同じです。 任せきりにしない。 破壊的な一歩の前に、人間が立つ。 これを今日から習慣にします。

視点

破壊的な一歩の前に、人間が立つ

戻す、上書きするは、前の状態を壊す操作です。ここだけはAI任せにせず、自分が一度確認してから進めます。カルテの記載を確定する前にもう一度読むのと、同じ習慣です。

ステップ1。いまの状態をセーブする

まず、いまうまく動いている状態をセーブします。 Claude Codeにこう言います(右上のボタンでコピーできます)。

いまの状態を、セーブポイントとして記録してください。メモは「ここまで完成」でお願いします。

メモの中身は、育てている物に合わせて書けば十分です。 私のドリルなら「採点と分野分けまで完成」。 ゲームなら「タイトル画面とスタート処理まで完成」、といった具合に。

すると「記録しました」と返ってきます。 専門用語ではこれをcommit、コミットと言います。 でも、最初から用語を覚えなくて大丈夫です。

やっていることは、カルテに記載を一つ確定するのと同じです。 「この時点の自分の物は、こういう状態だった」と一行、確定して残した。 これがセーブポイントです。

手を動かす

ここで一度、自分の手で試してください。

あなたが育てている物を開いて、Claude Codeに「いまの状態を、セーブポイントとして記録して」と一言だけ頼んでください。 やることはこれ一つです。

できたらの目印は、履歴に記録が一点残ること。 それが残ったら、次に進みます。

ローカルGitで、いまの状態を保存し、履歴を見て、壊した変更をrestoreで戻す流れです。GitHub本番や個人リポジトリには触れていません。

ステップ2。説明できることだけ、確定する

ここで一つ、医者の習慣を持ち込みます。 カルテに書くとき、自分が説明できないことは書きませんよね。

プログラミングの世界にも、まったく同じ教えがあります。 今日のゴールデンルールは、これです。

説明できないコードは、commitしない。

AIが書いてくれたコードでも、「これが何をしているか、自分の言葉で言えるか」を一度自問します。 言えるなら、確定する。 言えないなら、確定する前にAIに「これは何をしているコードか説明して」と聞いて、腑に落ちてから残す。

AIが書いたから正しい、ではありません。 医者の目で見て、説明できる状態にしてから確定する。 これが今日身につける筋肉です。

視点

今日のゴールデンルール

説明できないコードは、commitしない。AIが書いたものでも、自分の言葉で言える状態にしてから確定します。言えないなら、AIに「これは何をしているコードか説明して」と聞いて、腑に落ちてから残します。

手を動かす

さっき作ったセーブポイントのメモを見てください。

その一行を、自分の言葉で説明できますか。 「採点と分野分けまで完成」と書いたなら、採点とは何か、分野分けとは何かを言える状態にします。

もし説明できない変更が混じっていたら、まだセーブしない。 AIに説明してもらって、分かった状態にしてから残します。

ステップ3。履歴を見て、セーブポイントを確認する

セーブできたら、履歴を見ます。

ここで見たいのは、コードの中身ではありません。 一行のメモです。 「何を変えたか」が、自分の言葉で並んでいるか。 それを確認します。

ターミナルでgit logを表示し、採点と分野別履歴まで完成、最初の画面を作成というコミット履歴が並んでいる画面
コミット履歴は、セーブポイントの一覧です。中身のコードではなく、何を変えたかの一行を見ます。

GitHubの画面でも、コミット履歴として同じように記録が並びます。 今日の読み物としては、セーブポイントが時系列に残ることが分かれば十分です。

ここで大事なのは、日本語のメモでよいということです。 「採点機能を追加」。 「履歴を保存」。 「科別に整理」。

この程度で構いません。 未来の自分が読んで、「ああ、この時点に戻ればいいんだ」と分かること。 それが履歴の価値です。

ステップ4。わざと大胆に改造する

セーブができたら、ここからが今日の本番です。 わざと大胆にいきます。

Claude Codeにこう頼みます(右上のボタンでコピーできます)。

デザインを全面的に作り変えて、配色も全部変えてください。

すると、ガラッと変わります。 正直、前のほうが良かった、ということもあります。 文字も読みにくくなった、とか。

別の物を育てている人は、ここで自分の物の一番大きいところを丸ごと作り変えてみてください。 ゲームなら画面の見た目を全部変える。 自分のアプリなら主役の機能を作り直す。 「うわ、変わりすぎた」と思うくらい大胆でいいです。

今までなら、ここで頭を抱えていました。 でも今日は違います。 セーブがあります。

手を動かす

まず、あなたが育てている物に、わざと壊す改造を一つ入れます。

「ボタンの色を全部、背景と同じ色にして」でもいい。 「一番目立つ部分を消して」でもいい。 一目で「あ、壊れた」と分かる改造を一つ入れてください。

できたらの目印は、前と違う状態になったことです。 今日は、壊れたこと自体が練習材料です。

ステップ5。戻す前に、人間が確認する

ここで、すぐに「戻して」と言いたくなります。 その前に一拍置きます。

戻すのは、前の状態を壊す操作です。 今の変更を捨てて、さっきのセーブポイントへ戻る。 だから、AI任せにせず、自分が確認してから進めます。

確認することは三つです。

  1. どのセーブポイントに戻すか。
  2. 今の変更を捨ててよいか。
  3. 患者情報や鍵など、外に出してはいけないものが混じっていないか。

今日は学習用なので、3は入っていないはずです。 それでも、毎回見る。 この癖があとで効きます。

ステップ6。さっきのセーブポイントに戻す

確認できたら、Claude Codeにこう頼みます。

さっきのセーブポイントに戻してください。

戻りました。 見慣れた、さっきまでの状態です。 何事もなかったように元通りです。

これがセーブポイントの力です。 失敗が、失敗じゃなくなる。 強敵に挑む前にセーブするのと同じで、セーブがあるから、はじめて大胆に挑めます。

怖いから小さくしか直せなかったのが、戻せると分かった瞬間に、思い切り試せるようになります。

手を動かす

さっき自分が作ったセーブポイントから、自分で元に戻します。

AIに「さっきのセーブに戻して」と頼む前に、一度「戻していいか」を自分で確認してから進めてください。

できたらの目印は、育てている物が元通りに戻ること。 壊す、戻す、を順に一つずつ。 これができれば、今日のゴールに立てています。

ステップ7。GitHubに非公開で置く

もう一つ、さっきの「人に渡したい」を叶える入口に立ちます。

Claude Codeにこう頼みます(右上のボタンでコピーできます)。

これを、GitHubに置いてください。ただし公開はしないで、非公開でお願いします。

GitHubは、セーブデータをネット上の保管庫にも置いておける場所です。 これで二つ良いことがあります。

一つは、自分のPCが壊れても、育てている物は無事だということ。 もう一つは、ここに置いておくと、次回以降に出てくる「人に渡す」「公開する」の土台になることです。

今日この入口に立っておくと、後が楽になります。

大事な注意は一つ。 置くのは必ず非公開です。 世界に見せる「公開」とは別物です。

そして、上げる中身に患者情報や鍵を絶対に混ぜないこと。 私のドリルは試験勉強用の一般知識だけなので問題ありませんが、この確認はこの先ずっと効きます。 あなたが育てている物に、人に見られて困るものが入っていないか、上げる前に一度だけ確かめてください。

注意

上げる前に、ここだけは守る

GitHubに置くのは必ず非公開で。世界に見せる「公開」とは別物です。そして、上げる中身に患者情報や鍵を絶対に混ぜないこと。一度ネットに上げたものは、消したつもりでも痕跡が残ることがあります。施設のルールも先に確認してください。

コピーじゃダメなのか、AIを信用していいのか

ここで一つ、考えてみてください。

フォルダを丸ごとコピーして「最新」「最新2」とバックアップを取れば、セーブと同じことができる気がしませんか。 わざわざGitなんて要らないのでは。

最初はそれでも動きます。 でも、すぐ破綻します。 「最新」「最新2」「最終」「最終_本当」。 あの状態、経験ありますよね。 どれが正しいか分からなくなる。

Gitは、どこをどう変えたか、いつの状態か、何のためのセーブかまで、一行のメモ付きで覚えていてくれます。 コピーの山とは別物です。

もう一つ、医者として立ち止まる問いを置きます。 この道具、本当に信用していいのか。 AIが「戻しました」と言ったら、本当に戻っているのか。

答えはシンプルで、画面を見れば分かります。 戻ったかどうかは、自分の目で確認できる。 AIの言葉ではなく、画面で確かめる。 だから信用できます。

今日でどう育ったか

BeforeとAfterで見ます。

Before。 壊すのが怖くて、こわごわ小さくしか直せなかった。 自分のPCの中にしかなくて、人に渡せなかった。

After。 いつでも前の状態に戻せる履歴ができた。 だから大胆に改造できる。 そしてGitHubに置いたことで、人に共有する入口に立った。

差分に名前をつけます。 これで、いつでも戻れるセーブポイントと、共有の入口ができました。

補足

今日持って帰るもの

いつでも前の状態に戻せる履歴ができたから、はじめて大胆に改造できます。戻す、上書きするの手前では人間が確認する。そして、説明できないコードはcommitしない。この二つを習慣にすれば、Gitのコマンドは覚えなくて大丈夫です。

卒業ゲート

今日の卒業条件は、三つです。

  1. いま動いている状態を、セーブポイントとして残せた。
  2. 説明できないコードをcommitしない、と自分で止まれた。
  3. わざと大胆に壊して、戻す前に確認し、元の状態へ戻せた。

この三つができていれば、Gitの細かいコマンドを覚えていなくても大丈夫です。 今日ほしいのは用語ではありません。 戻れる安心です。

安全ライン

今日は安全ラインが特に大事です。

公開リポにはしない。 置くのは必ず非公開です。

そして、説明できないコードはセーブしない。 AIが書いたものでも、自分の言葉で言える状態にしてから確定します。

患者情報を題材にするのは、当然、最初から避けます。 医療を例にするなら、扱うのは試験勉強用の一般知識だけ。 カルテのデータには触りませんし、施設のルールも先に確認します。

一度ネットに上げたものは、消したつもりでも痕跡が残ることがあります。 だから「上げる前に中身を確認」を、今日から習慣にしてください。

細かいGitHubの設定手順は、別のガイド教材にまとめてあります。 ここでは、戻せる、大胆になれる、という体験に集中します。

問い

つまずいたら

このレッスンの作業で起きがちな詰まりと、その抜け方です。

  • セーブして、と頼んだのに履歴に何も残らない → 何かエラーらしき文が返っていないか見て、その文と状況をそのままAIに貼って「これはどういう意味か、どうすればセーブできるか」と聞く。
  • 戻して、と頼んだのに見た目が元に戻らない → AIの言葉を信じず自分の画面を見て、どこが直っていないかを具体的な言葉にして、その状況を貼って「ここがまだ戻っていない」と伝える。
  • GitHubに置こうとして止まる、認証を求められる → エラー文と状況だけを貼って聞く。このとき鍵やパスワードはAIに貼らない。求められているのが「非公開で置く」かを、注文(非公開)と画面の表示で見比べる。

理解度チェック

セルフチェック

1. 今日のゴールデンルール「説明できないコードは、commitしない」が意味することは何ですか。

2. わざと壊した後、さっきのセーブポイントに戻すとき、なぜ戻す前に自分で確認するのですか。

次回へ:1台に閉じ込められている

今日で、戻せる安心ができました。 壊しても戻せると分かったから、もう大胆に手を入れられます。

でも、まだ足りないことが一つあります。

あなたが育てている物の記録、私のドリルなら点数や弱点のデータは、いまだに自分のこの端末の中だけにあります。 別のPCを開いたら、続きから始められない。 スマホからは、そもそも見えない。

せっかく育てているのに、いまは1台に閉じ込められています。 別の端末でも続きをやりたい。 その欲求が、次の回につながります。

次は、ここを外に出します。 家のPCでも、移動中のスマホでも、同じ続きからできるようにする。 育てている物を、自分の端末の外へ連れ出す回です。