はじめに
みなさんgitは使用してらっしゃいますでしょうか。
そうですversion管理ツール gitです。
チーム開発の経験がある方なら一度は経験したことがあると思います。
ブランチを生やすという行為を。
ではなぜブランチを生やす必要があるのでしょうか。
今回はそれについて話していきたいと思います。
ブランチを生やす理由
基本的にブランチを生やす理由としては
-
main(develoip)ブランチを綺麗にした状態にできる。 - リリースによるバージョンを管理できる
ということが挙げられます。
とこのように端的に言われてもわかりづらいとは思うので次に例えを使った説明となります
1.main (develoip)ブランチを綺麗にした状態にできる。
mainブランチをきれいにした状態にできるとはなんなのか
料理を例に取ってみましょう
筑前煮 という料理をご存知でしょうか
そうです あの筑前煮ですね
筑前煮という料理はそれぞれの具材をそれぞれ調理して最後に一つに合わせることで完成します。
ではその中でにんじんだけ丸焦げにしてしまった場合これを最後合わせるでしょうか。
合わせませんね。だって筑前煮が美味しく出来上がりませんから。
面倒ですがもう一度にんじんだけ調理しなおしますよね。
そして人参がちゃんと美味しく調理できたら筑前煮に合わせます。
この筑前煮がgitにおけるmain(develop)ブランチであり、人参がbranchであるわけです。
branchにおいて、綺麗なコードができるまではmainブランチにマージできません。
だってmainブランチが汚くなってしまいますから。
チーム開発においては人参を調理する人、椎茸を調理する人、蓮根を調理する人、と分かれるかもしれませんが、最後には美味しい筑前煮(コード)が出来上がることが目標となっています。
チームメンバーの中に一人でもmainブランチで作業をする人がいたらどうなるでしょうか。
その人がもし調理法を間違えると最終的に出来上がる筑前煮が美味しくなくなってしまうのです。
このようにブランチを生やすという行為はmainブランチが綺麗に出来上がるための礎となっているのです。
2.リリースによるバージョンを管理できる
では次にリリースによるバージョンを管理できるについて
ここでも料理を例に取ってみましょう。
みなさんカレーはご存知ですね。
そうです あのカレーですね。
皆様の中には辛いカレーが好きな方や辛さ控えめのカレーが好きな方もいらっしゃるでしょう。
ではみんなでカレーを作るときに辛いカレーが好きな方と辛さ控えめのカレーが好きな方の両方の要望を叶えるにはどうすればいいでしょうか。
別々に調理する?
できないこともないですが効率はよろしくないですね。
ここで取れる手段が具材を煮込むとこまではどっちも一緒にやってしまうことです。
煮込み終わったら鍋を分けてそれぞれの辛さに合うようなルーを入れればいいですね。
ここで鍋を分けるという行為がリリースによるバージョンを管理できるということになります。
煮込み終わった時点のカレーがバージョン0.5
辛さ控えめなカレーがバージョン1、
さらに辛くなったのがバージョン2となります。
これをgitに置き換えると、
コードのベースが出来上がった時点でバージョン0.5
そこからさらに機能を追加したものがバージョン1,
さらに機能向上などを行なったものがバージョン2
このように過去の状態(からくない状態)として切り離すことで、さまざまな味を楽しむことができます。
これがリリースによるバージョンを管理できるということになります。
結論
ブランチはきろう
著者はプログラミングを始めてまだ日が浅いため、厳密には違うことを言っているかもしれません。
もし間違っていることや、他にもっと重要な機能があるということがございましたら、後学のためにも教えていただけましたら幸いです。