Gitは「人生をやり直せる魔法のボタン」である
プログラミングを始めてソースコード管理をしだした方が必ずと言っていいほどぶち当たる壁。
それがGit(ギット)です。
名前からして強そうですよね。でも安心してください。
Gitを一言で言うなら、最強の「セーブ機能」です。
普通の「上書き保存」とはワケが違います。
Gitを使えば、昨日の自分、一昨日の自分、あるいは「もしもあの時、別の道を選んでいた自分」にだって、一瞬で戻ることができるのです。
なぜ「上書き保存」ではダメなのか?
想像してください。あなたは超大作のプログラムを書いています。
徹夜で作業して、ようやく完成間近!というところで、魔が差して余計なコードを1行書き足してしまいました。
「あ、バグった。しかもどこを直したか忘れた……」
この絶望感。
Ctrl + Zを連打しても戻れない。ファイル名は「最終版_2.py」とか「本当の最終版_修正済み.py」とか「これが本当の最終版(令和最新版)_修正完了.py」で溢れかえる。
Gitはこのカオスを解決するためにリーナス・トーバルズ氏によって生み出されたデジタル界の救世主なのです。
Gitの仕組みを「秘密基地」で例えてみる
Gitの世界には、3つの重要な場所があります。あくまでイメージですが、以下の文章で雰囲気を掴んでください。
- ワークツリー:私たちが作業している「机の上」
- ステージングエリア:セーブする前に、中身をチェックする「写真撮影台」
- リポジトリ:厳重に保管される「タイムカプセル」
まずは机(ワークツリー)で作業をします。
「よし、この状態を保存したい!」と思ったら、そのファイルを撮影台(ステージング)に乗せます(詳細は省きますが、「git add」というコマンドを使います))。
そしてシャッターを切る(コミットする)と、その瞬間のデータがタイムカプセル(リポジトリ)に保存されるのです。
この「シャッターを切る」ような行為を、Gitではコミットと呼びます。RPGのゲームでセーブすると、その時点のデータが残るイメージも近いです。
コミットするたびに、あなたの作業履歴には「歴史」が刻まれていきます。
ゲームではセーブデータの数の上限があることも多いですが、Gitでは実質無限にセーブポイントをつくることができるのです。
パラレルワールドを操る「ブランチ」という力
Gitの真の恐ろしさ、いや素晴らしさはここからです。
Gitには「ブランチ(枝)」という機能があります。
これは、一つの物語から分岐して別の世界線を作るような機能です。
「この新機能を試したいけど、今の完成版を壊したくないな……」
そんな時、ブランチをピッと分ければ、元の世界には一切影響を与えずに、新しい世界で大暴れできます。
うまくいったら元の世界に合体(マージ)させ、失敗したらその世界線(ブランチ)ごと無かったことにすればいい。
まさに、神の視点。
これだけは覚えておきたいGitの極意
初心者がGitを使いこなすための心構えは、たった一つです。
「こまめにセーブ(コミット)せよ」
1時間おきでも、あるいは1つの機能を直すごとでも構いません。
こまめにセーブしておけば、どんなに派手にプログラムをぶっ壊しても、数分前の「平和だった頃の自分」に戻れます。
「どのくらいの粒度でコミットしたらいいんだろう?」ということを本腰入れて考えるのは、現場に入ってからでも遅くないでしょう。
Gitはあなたの失敗を笑いません。
むしろ、あなたの「挑戦した証」をすべて覚えていてくれるクールな相棒なのです。

コメント