九保すこひ@フリーランスエンジニア|累計300万PVのブログ運営中
その日はいつになくコードを書くのがはかどったんで、夜は大満足で布団の中に入ったんです。
そしたら、ふと・・・・・・
目次
Gitの基本って『漫画・ナルト』の多重影分身を使ったら理解が早いんじゃ!?
と思ったんで、記事にしてみました。(※ ネタ的なカンジなんでツッコミどころがあってもノリで読んでいただけるとありがたいです)
では、master ブランチが、ナルト本体として git について考えてみましょう!
1.体術の修行でブランチ&マージを説明
体術を学ぶために、多重影分身でナルトAをつくりだし、ロック・リーのところで修行をさせることにしました。
数日後、ナルトAは「八門遁甲(はちもんとんこう)」をマスターすることに成功しました!!!
このとき、2人のナルトは
- ナルト本体 ・・・ 八門遁甲を使えない
- ナルトA ・・・ 八門遁甲を使える
となってますけど、これは Git でいうところの・・・・・・
- ナルト本体 ・・・ マスターブランチ
- ナルトA ・・・ 作業用ブランチ
になるわけですね。
さて、このときナルト本体は考えました。
「八門遁甲かっこいいってばよ!」と。
そこで、ナルトAから、八門遁甲の修行経験を自分自身に取り込むことにしました。
すると、今2人のナルトは、
- ナルト本体 ・・・ 八門遁甲を使える
- ナルトA ・・・ 八門遁甲を使える
どっちも八門遁甲を使えます。
そうです。これが、git merge (プログラムファイルの結合)です。
※確かナルト原作では多重影分身を消して過去の経験を取り込んでたはずですが、分かりやすいんでナルトAが残る説明にしました。
2.医療忍術の修行で作業内容の破棄を説明
次に、ナルト本体は次に医療忍術が使えるようになりたいと思ったので、ナルトBを影分身で作り出し、さくらのところで修行させることにしました。
でも、医療忍術の修行はとても難しく、ナルトBは残念ながらマスターすることができませんでした。
しかもナルトBには、さくらの鬼のような修行でトラウマのような記憶が残っています。
つまり、
- ナルト本体(マスターブランチ) ・・・ つらい記憶をもっていない
- ナルトB(作業用ブランチ) ・・・ つらい記憶をもっている
ということですね。
ということは、ナルト本体からすると、その嫌な記憶は取り込みたくありません。
そこで、ナルトBからは何も取り込まずに消してしまうことにしました。
これをプログラムでいうと、作業用ブランチ(ナルトB)を使って新機能の開発(医療忍術の修行)をしたけど、結局うまくいかなかったから、なにもマージせず(取り込まず)終了した。
ということになります。
もともとのマスターブランチには変更を加えていないので、簡単に元の状態に戻ることができますね。
3.風遁の修行でリモート&ローカルブランチを説明
医療忍術は向いていないと思ったナルト本体は、次に我愛羅から風遁を教えてもらうことにしました。
しかし、我愛羅は砂隠れを離れることはできません。
そこでナルト本体は、ナルトCを砂隠れに行かせることにしました。
つまり、
- ナルト本体 ・・・ 木ノ葉隠れにいる
- ナルトC ・・・ 砂隠れで修行中!
ということになります。
これを git で考えると、
- ナルト本体 ・・・ リモート・リポジトリ(GitHub などのインターネット上にある)
- ナルトC ・・・ ローカル・リポジトリで作業中!(あなたのパソコンの中)
ってことですね。
そして、ナルトCは努力の結果、風遁をマスター することに成功しました。そこで、ナルト本体にも風遁を使えるようにしてあげるために、修行の経験を木ノ葉隠れに送信してあげました。
そうです。これが git push ですね。
つまり、いま木ノ葉隠れのナルト本体も風遁を使えるようになったのと同じく、GitHub などのリモート・リポジトリにパソコンで作業した内容を送信することが完了したってわけです。
ということで、こうやってナルト本体(マスターブランチ)はどんどん(キチンとした)新しい機能を取り込んでいって成長を続けることができましたとさ。
おしまい。
ってこんなカンジでしょうか??
でも、今気づいたけどナルトを知らない人は一回あの長い物語を読まなきゃいけないから、その場合はとてつもなく効率が悪いことに気が付きました・・・・・・
時間ができたらまたもう一回読んでみようかな。
ではでは!