Git 初心者を悩ませる git flow。はじめて git flow の解説を見た時、これは化学式か?図の意味がわからない、と思われた方も少なくないと思います。
今回はそんな Git ビギナーにとってイメージしにくい git flow について、流れがイメージできるように分かりやすい表現でご紹介させていただきます。
必要となる事前知識/ブランチやマージ、プッシュなどの Git 基礎知識
Git ビギナー向け!git flow とは
git flow とは
git flow は、チームで Git を使う際に役立つ、運用ルールをまとめたツール(プラグイン)になります。Git は分散型バージョン管理システムで、複数名でプロジェクト・ファイルを共有できる特徴があります。開発スピードの向上やミスの低減などメリットがある一方で、開発スタート時に運用ルールを定めておかないと、プロジェクトがまとまらない、というデメリットがあります。
これは会議で意見がまとまらないことをイメージしていただくと、分かりやすいのではないでしょうか。
そんな まとまらない? Git の課題を git flow は解決してくれます。
ちなみに git flow は、2009年にオランダ人ソフトウェア・エンジニアの ヴィンセントさんが発案した Git の運用ルールになります。ヴィンセントさん自身、実際の開発現場で git flow を使ってみて感触良く、ご本人のブログで紹介したところ Git ユーザーから支持を集めて、現在は Git 運用(ブランチ・システム)のスタンダード・モデルとなりつつあります。
git flow の内容

Git 機能の一つに ブランチ(branch)というものがあります。ブランチとは枝分かれのことを意味して、開発中のソフトに新しい機能を加えたい時などに使われます。ブランチは簡単に誰でも作成できることもあり、運用ルールがないとブランチが乱立する恐れがあります。
そこで考え出されたのが git flow になります。git flow では、マスター(master)とデベロップ(develop)という 2本の柱を軸に、3本の補助柱を設けてブランチの運用をスマートにします。
軸となる2本の柱
master/本番に反映するファイルで、基本的にこちらにはコミットしませんdevelop/開発を行うブランチになります。この2つの柱(ブランチ)は消滅することなくプロジェクトと共に存続します。
補助となる 3本の柱
2本の主軸をサポートするために3種のブランチが設けられます。この3種のブランチはいずれも有限的で、実装が完了したら develop にくっつけられる(マージ)か develop から切り離されます。
補助柱①機能ブランチ(Feature branches)
ブランチ元/develop マージ先/develop
追加機能などはこちらで作業されます。
補助柱②リリースブランチ(Release branches)
ブランチ元/develop マージ先/develop と master
リリース前の微調整を行うブランチで、小さなバグ修正などが行われます。
補助柱③Hotfix ブランチ(Hotfix branches)
ブランチ元/master マージ先/develop と master
トラブルが発生した際、緊急を要する場合に使用されます。
2本の主軸と3本の補助柱を設けることでプロジェクトのコア部分は安定し、尚且つ有限的な3本の補助柱で 開発(プログラミング)が行われます。
開発ステージとなる 3本の柱(機能ブランチ・リリースブランチ・Hotfix ブランチ)があることでワークスペースを明確にし、ブランチ乱立によるプロジェクトの混乱を防いでいることが分かります。
git flow の作業をちょっと覗いてみる
百聞は一見にしかず、ということで git flow を実際に使っている様子を見てみたいと思います。
ターミナル画面での操作風景(動画)

git flow 対応ソフト(ソースツリー)を使っている様子(動画)

git flow とネットで検索すると多くの場合、ソースツリーの利用が推奨されていますが、ご覧の通りボタンが多く慣れるのに少し時間がかかります。
理屈がわかっていればターミナルからの操作もそれほど難しくないので、とりあえず両方使ってみることをおすすめします。
Git flow の代表的な使い方
Git flow を無料で使う代表的な方法として以下の3つがあります。
①ターミナルから
②ソースツリーから
③Visual Studio から
いかがでしたでしょうか?現在 IT 関係の求人情報を見ると git flow が職場で使われている、もしくは就労条件として提示されることも珍しくありません。
今回は git flow の概要をご紹介しましたが、もうちょっと詳しく知りたいな、という方は git flow のオリジナルテキストを参照されることをオススメします。
git flow オリジナルテキスト 日本語訳 http://qiita.com/homhom44/items/9f13c646fa2619ae63d