この記事ではGitのブランチやgit flowについて解説します!
Gitには変更履歴を分岐して記録させることが出来るブランチという機能があります。また、そのブランチを使った開発の方法として、git flowというモデルがあります。
git flowという方式でコードの管理をしてみたい。
といった方に向けてこの記事では、
- ブランチとは
- git flowとは
- git flowで使われるブランチ名
について解説していきます。ブランチについて分からない方も、この記事で解説するのでぜひご覧ください!
ブランチとは
まずはブランチとは何かについて知っておきましょう。ブランチは一本の変更履歴で続いてきたものを分岐させることで、開発中のプロジェクト本体には影響を与えずに別の機能の開発を続けられる機能です。
Gitでは基本的にはmasterという一本のブランチがあり、このブランチを軸に様々なブランチを作ってプロジェクトの機能を追加したり、削除したりします。
ちなみにブランチを作ることを、「ブランチを切る」と言うこともあります。また、ブランチ元AからブランチBを切った時、ブランチAにブランチBを統合させることを、「マージする」と言います。
ブランチの基本については解説しましたが、ブランチの使い方についてはこちらの記事でご確認ください。
git flowとは
git flowは、ブランチを「あるモデル」に沿って作ることが出来るツールです。また、その「あるモデル」そのものも、git flowと呼ばれています。今回はgit flowというモデルそのものについて解説をしていきます。
このgit flowでは、この修正点、変更点はこのブランチで行うべきといった具合に振り分けられています。
それは後の章で解説をしていきますが、このgit flowを使うことで開発をより効率的に、コンフリクト[(同じ部分を複数人で同時に変更してしまった場合の衝突)を極力減らしながら開発を進めることが出来ます。
git flowのブランチ名
git flowでは開発の内容によって、作業をするブランチが変わってきます。ここではそのブランチ名について見ていきましょう!
masterブランチ
masterブランチには常に安定して動く、リリースした後のコードを置いておきます。
masterブランチはGitを使うときにデフォルトで作成されるブランチで、見たことがある人も多いのではないでしょうか。ただしgit flowではこのブランチに直接コミットをすることはないので気をつけましょう。
developブランチ
developブランチでは次のバージョンをリリースするために、最新の開発履歴を残しておきます。言わばgit flowを使った開発の中心となるブランチで、常に最新の変更が加えられているブランチになります。
masterブランチが出来ているデフォルトの状態で、developブランチを作っておきましょう。
featureブランチ
featureブランチは、developブランチから分岐して、developブランチにマージされます。このfeatureブランチでは新しく追加する機能の開発や、簡単なバグの修正を行うことが出来ます。
featureブランチを変更する機能の数だけ切って、その中で個々の機能についての変更を行っていきます。このブランチで作業し終わったあとはこのブランチは削除するのが一般的です。
releaseブランチ
releaseブランチはdevelopブランチから分岐してdevelopブランチとmasterブランチにマージされます。このブランチではリリースの作業だけを行います。
リリース作業が終わった後は、developブランチとmasterブランチにマージしてリリースが完了となります。このブランチも作業し終わった後は削除するのが一般的です。
hot-fixブランチ
hot-fixブランチはmasterブランチから分岐してdevelopブランチとmasterブランチにマージされます。masterブランチ内で重大なバグが見つかった場合は、緊急性が高く、今までのようなブランチを作っている暇はありません。
その場合にこのhot-fixブランチをmasterブランチから切ってその中でバグの修正を行いましょう。バグが修正できた場合は、リリース作業もこのブランチで行って、developブランチとmasterブランチにマージして、完了になります。
supportブランチ
supportブランチは必ずしも必要なブランチではありません。コードの旧バージョンをサポートする必要がある場合は、このブランチで開発や保守を続けていきます。
masterブランチから分岐させてサポートの終了までこのsupportブランチの中で開発を行っていきます。
SourceTreeでgit flowを使う方法
GUIクライアントのSourceTreeを使うとgit flowのブランチを作るのがとても楽になります。SourceTreeにはgit flowで使われるブランチを作りやすいように、最初からツールが含まれています。
こちらの記事ではSource Treeの基本について解説されているのでぜひご覧ください。
まとめ
この記事ではブランチ、git flowについて、git flowで使われるブランチについてを解説してきました。git flowの開発の流れについては分かって頂けたでしょうか?
ブランチについて分からなかった方も、git flowのモデル通りにブランチを切ってみると、学習しやすいかもしれません。それぞれのブランチについて忘れてしまったら、またぜひこの記事をご覧ください!