【第3回】AIに大胆に任せても壊れない状態を作る|Gitのコミットだけ覚える(嫁子が教えるTS講座)

今回のゴール

前回(開発環境を作る)で作業台ができたので、今回はAIに任せるほど重要になる仕組みを入れます。全体像は講座の目次へ。


嫁子: 先に言うね。AIに作らせるなら、Gitは前より重要になるよ。

理由は単純で、AIは一度に大量に書き換えるから。あなたが手で直すなら5行だけど、AIに「この機能を追加して」と言ったら、10ファイルが同時に変わることがある。

そこで「なんか壊れた」となったとき、記録がないと、どこまで戻ればいいか分からないんだよね。全部AIのせいにもできない。だって指示したのはあなただから。

記録さえ残っていれば、動いていた時点にいつでも戻れる。AIに大胆に任せられるのは、この安全網があるからだよ。

ただし今日は「記録を残す」だけやる。ブランチもGitHubも、今のあなたには要らないからね。


なぜ必要か:3日後のあなたを助けるため

プログラミングを始めると、必ずこの瞬間が来ます。

「さっきまで動いていたのに、AIに直してもらったら別のところが壊れた」

ファイルを上書き保存すると、前の状態はどこにも残りません。だから「動いていた頃」に戻れなくなります。

Gitは、この問題を解決する道具です。節目ごとに「この時点の状態」を記録しておいて、あとから見返したり戻ったりできるようにします。

ふつうの保存 Gitの記録(コミット)
前の状態は消える 前の状態も残る
「いつ何を変えたか」は残らない 変更点とメモが残る
壊れたら戻せない 動いていた時点に戻れる

嫁子: よく「セーブポイント」に例えられるけど、私は「作業日誌つきのスナップショット」のほうが近いと思ってる。

ゲームのセーブと違うのは、「何をやったか」を自分の言葉でメモできること。3日後の自分に手紙を書いてるようなものだね。


① Git が入っているか確認する

多くの環境では最初から入っています。VS Code のターミナルで確認します。

git --version

こう出れば入っています。

git version 2.47.1

入っていなければ Git の公式サイト からインストールしてください。インストール中に色々聞かれますが、基本はすべて既定のまま「次へ」で問題ありません。


② 名前とメールアドレスを設定する

記録に「誰が記録したか」を残すため、最初に一度だけ設定します。

git config --global user.name "あなたの名前"
git config --global user.email "you@example.com"

嫁子: ここ、ひとつ注意ね。

この情報は、将来GitHubなどに公開したときに一緒に見えるよ。本名を使いたくないなら、ハンドルネームでいい。メールアドレスも、普段使いのものを避けたいなら別のものにして。

今はまだ公開しないから深刻な話じゃないけど、あとから全部書き換えるのは面倒だから、最初に決めておくほうが楽だね。


③ フォルダを「記録する対象」にする

前回作った ts-lesson フォルダを VS Code で開いた状態で、ターミナルにこう打ちます。

git init

こう出れば成功です。

Initialized empty Git repository in .../ts-lesson/.git/

これでこのフォルダは「Gitが見張ってくれるフォルダ」になりました。.git という隠しフォルダができますが、中身は触らなくて大丈夫です。


④ 記録を残す(コミット)

記録は2段階です。ここが最初の関門なので、ゆっくりいきます。

手順1:記録したいファイルを選ぶ

git add hello.js

手順2:記録する

git commit -m "はじめてのコミット"

-m の後ろがメモです。あとで自分が読んで分かる言葉を書いてください。

状態を見る

いま何が起きているか確認するコマンドです。困ったらこれを打ちます。

git status

履歴を見る

git log --oneline
a1b2c3d はじめてのコミット

嫁子: なんで2段階なの? って思ったでしょ。私も最初そう思った。

これはね、「変更したもの全部」じゃなくて「今回の記録に含めたいものだけ」を選べるようにするため。5個のファイルをいじったけど、今回は3個だけ記録したい、みたいなことができるんだよ。

ただ最初のうちは全部まとめて記録して構わないから、git add .(ドット)で全部選ぶのを覚えておけば十分だよ。

git add .
git commit -m "作業内容のメモ"

コミットのメモは何を書くか

「何をしたか」を書きます。「何を変えたか」ではありません。

✕ 良くない例 ○ 良い例
更新 hello.jsの出力メッセージを変更
修正 ファイル名の打ち間違いを修正
aaa Node.jsの動作確認用ファイルを追加

嫁子: 更新 とか 修正 って書きたくなるのは分かるよ。私も面倒なときはやりたくなる。

でもこれ、3ヶ月後にログを見たときに何の役にも立たないんだよね。更新 が20個並んでても、どこに戻ればいいか分からないでしょ。

完璧な文章じゃなくていい。「未来の自分が読んで思い出せるか」だけを基準にしてね。


今日やらないこと(あえて)

Gitの解説でよく出てくる次の3つは、今は覚えなくていいです。

嫁子: 今日は「記録を残す」だけ。これができれば、当面の事故は防げるよ。

必要になってから覚えるほうが、絶対に身につく。使う場面が想像できない機能を先に覚えても、忘れるだけだからね。


今回のまとめ


次にやること

第1部(知識と準備)はこれで終わりです。次回から第2部・JavaScriptの基礎に入り、まずは変数と型からです。TypeScriptを学ぶ講座ですが、その土台であるJavaScriptを先にやります。ここを飛ばすと必ず後で詰まるからです。

今回の宿題hello.js の中身を書き換えて、git add .git commit -m "メッセージを変更" を実行してみてください。そのあと git log --oneline を打つと、記録が2つに増えているのが見えます。それが履歴です。

嫁子: 2つ並んだのを見た瞬間に、「あ、こういうことか」ってなると思うよ。

Gitは説明を読むより、2回コミットしたほうが早く分かるから。宿題はやっておいてね。