【第3回】AIに大胆に任せても壊れない状態を作る|Gitのコミットだけ覚える(嫁子が教えるTS講座)
今回のゴール
- Gitが何のためにあるかを説明できる
- 自分のフォルダで記録を1回残せる(コミット)
- ブランチもGitHubも、今日は出てきません
前回(開発環境を作る)で作業台ができたので、今回は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人で作業しているうちは不要
- GitHub — 記録をネット上に置くサービス。公開したくなったら学べばいい
- プッシュ / プル — GitHubとやりとりする操作。GitHubを使い始めてからで十分
嫁子: 今日は「記録を残す」だけ。これができれば、当面の事故は防げるよ。
必要になってから覚えるほうが、絶対に身につく。使う場面が想像できない機能を先に覚えても、忘れるだけだからね。
今回のまとめ
- Gitは「動いていた時点に戻れる」ようにする道具
- 最初に一度だけ
git configで名前とメールを設定する(公開される情報なので注意) git initでフォルダを記録対象にする- 記録は2段階:
git add .で選んで、git commit -m "メモ"で記録 - 困ったら
git status、履歴はgit log --oneline - メモは「未来の自分が読んで思い出せるか」だけを基準に書く
次にやること
第1部(知識と準備)はこれで終わりです。次回から第2部・JavaScriptの基礎に入り、まずは変数と型からです。TypeScriptを学ぶ講座ですが、その土台であるJavaScriptを先にやります。ここを飛ばすと必ず後で詰まるからです。
今回の宿題:hello.js の中身を書き換えて、git add . と git commit -m "メッセージを変更" を実行してみてください。そのあと git log --oneline を打つと、記録が2つに増えているのが見えます。それが履歴です。
嫁子: 2つ並んだのを見た瞬間に、「あ、こういうことか」ってなると思うよ。
Gitは説明を読むより、2回コミットしたほうが早く分かるから。宿題はやっておいてね。