Zenn
🐷

ラーメン屋で学ぶ Git 講座:はじめてのバージョン管理

に公開

🍜 ラーメン屋で学ぶ Git 講座:はじめてのバージョン管理

Git やバージョン管理の話は、抽象的でとっつきにくいと思っていませんか?
ちなみに、私は何度も挫折しましたが、今回、身近な「ラーメン屋」で例えてみました。
意外と自分でもGit活用の整理ができた気がします。


🧂Git用語とラーメン屋

Git用語 ラーメン屋に例えると
Working Directory キッチンで実際にラーメンを作ってる場所
Stage(ステージ) 材料をテーブルに並べた状態(使うかもと思った材料)
Commit(コミット) 今日のラーメンの味をレシピとして記録すること
Branch(ブランチ) 新しい味に挑戦する別の厨房(分家・支店)
Merge(マージ) 支店のうまいラーメンを本店メニューに取り入れること
Log(ログ) 今までのラーメンの味の記録帳

🍳 ステージとは?

ステージ = 材料をテーブルに並べる

ラーメン屋の大将が、新メニューを開発中だとしましょう。

  • 今日はニンニクを多めに入れようかな?
  • チャーシューに七味をふってみようかな?

その材料を並べる(でもまだ料理してない)段階が ステージ

git add 材料

とすると、「この材料使うよ」と Git に伝えてることになります。


📝 コミットとは?

コミット = 材料で実際に料理してみて、うまかったらレシピを保存!

テーブルに並べた材料で試作ラーメンを作ってみた。味もバッチリ。

「これはいい!今日の味は記録しておこう!」

ということで、

git commit -m "にんにく増しの神ラーメン"

とすると、その時点のレシピが保存されます。


🌱 ブランチとは?

ブランチ = 支店を作って別の味に挑戦!

ある日、弟子がこう言いました:

「店主、味噌ラーメン作ってみたいです!」

よし、それなら別の厨房(=ブランチ)で試してみろ!

git branch miso

味噌ラーメン専門のブランチを作りました。

git checkout miso

これで、新しい厨房でラーメン開発スタート!


🔁 マージとは?

マージ = 支店の成功メニューを本店に取り入れる!

支店の「味噌ラーメン」、大人気に!

「こりゃあ本店でも出すべきだな…」

ということで、本店に取り入れる=マージします:

git checkout main

git merge miso

本店メニューに味噌ラーメンが加わりました🎉


📚 ログ(log)とは?

ログ = 今までのラーメン開発のレシピ履歴帳

git log

とすると:

  • にんにく増しの神ラーメン
  • チャーシュートッピング追加
  • 味噌ラーメン開発開始

など、今までのコミット(レシピ)の履歴が全部見れます。


🤔 まとめ:Gitはラーメン屋で説明可能

Gitを学ぶというのは、単に「履歴を管理するツール」ではなく、
「アイデアの進化を記録して、自由に枝分かれさせて、戻って、統合する」仕組みを理解すること。

そして、ラーメン屋のように、

  • 材料(ステージ)を選び、
  • レシピ(コミット)を残し、
  • 新しい味(ブランチ)に挑戦し、
  • 成功したら(マージ)で戻す。

それこそが、Git の醍醐味なのです 🍜

プログラミングの世界をラーメン屋で例えたので
正確性は欠けるかもしれませんが、Gitを知らない人に説明する例えにはなるかと思います。

Discussion

ログインするとコメントできます