【Git】時よ戻れ!〜RPGゲームの「セーブ」とGitの「commit」の比較から、commitとは何かについて考えてみる〜
commitとは結局なんなのか
結論
commitとは、
どのセーブ地点にも戻ることができる
高機能な「セーブ」
解説
RPGのセーブとGitのcommitを比較してみます。
RPGの「セーブ」
ここに冒険の書v0.1があります。
冒険が進んだので、冒険の書v0.2として保存しようとしました。
基本、セーブは上書きなので、
一度保存してしまうと前のデータには戻ることが出来ません。
Gitの「commit」
Gitのcommitは上書きではなく、
「写真をとる」イメージです。
git commit
とすると、パシャッとファイルの写真を取ってくれます。
冒険が進み、冒険の書v0.2としてコミットすると、
こんな感じになります。
お気づきでしょうか。
そう、前の「冒険の書v0.1」も写真としてしっかり残っているのです。
残っていると、そのファイルを復活させる(=戻る)ことができます。
セーブとcommitの違い
ズバリ、
戻れるか戻れないか
という違いです。
まずはこの点を抑えておきましょう。
commitは本当に戻れるのか
本当にcommitは戻れるのでしょうか。
ちょっと試してみましょう。
準備
以下のように、冒険の書を作成し、適当に3つコミットします。
戻してみる
では、冒険の書v0.2に戻してみましょう。
git checkout ハッシュ番号
を使います。
戻れた。
戻れることのメリット
- やりなおせる
バグを出しまくっても、どうしようもないコードを書きまくっても、
いつでも戻ってやりなおせる。
- 安心感
やりなおせるということから、安心感が生まれる。
まとめ
Gitは戻れる。便利。
どんどんコミットしていきましょう。