【Git】ブランチ運用ルール「Git-flow」と「GitHub Flow」
こんにちは、技術部のFです。
チーム開発でGitを使う場合に使用される代表的な運用方法の、「Git-flow」と「GitHub Flow」についてまとめます。
Git-flowとは
Git-flowは主に機能ごとにブランチを使い分けて開発を進めていく手法です。次の6つのブランチを用いて開発していきます。
- master
本番環境のブランチで、リリースするために使う。ここでは直接コミットせず、マージのみ行う。
※masterブランチ上では開発を行わない。 - develop
開発中の主軸となるブランチ。developからfeatureブランチを作成し、そこで作業する。
※developブランチ上では開発を行わない。 - feature
機能の追加や変更、不具合の修正など実際に開発を行うブランチ。作業完了後、developにマージする。 - release
検証環境、もしくはリリース準備用のブランチ。developから作成し、リリースに伴う細かい修正等を行う。
作業完了後、masterブランチとdevelopブランチにマージする。
※releaseブランチがあることで、リリース作業中にもdevelopブランチで並行して開発を進めることができる。 - hotfix
リリース後にバグが発生した場合、修正を行うブランチ。
masterブランチから作成し、作業完了後、masterブランチとdevelopブランチにマージする。 - support
旧版のサポートをするときに用いるブランチ。オプションであり、使わないこともある。
Git-flowの開発の流れ
Git-flowを使った場合、以下のように開発していきます。
1. masterブランチからdevelopブランチを作成し、developブランチからfeatureブランチを作成する。
2. featureブランチで開発をする。
3. 2.が完了したら、developブランチにマージする。
4. developブランチにいくつかのfeatureブランチがマージされたら、developブランチをreleaseブランチにマージし、リリースのための微調整を行う。
5. 4.が完了したら、releaseブランチをmasterブランチとdevelopブランチにマージする。
6. masterブランチにマージできたら、デプロイを行う。
※バグが発生した場合
1. masterブランチから直接hotixブランチを作成する。
2. hotfixブランチで修正が完了したら、masterブランチとdevelopブランチにマージする。
3. masterブランチにマージできたら、デプロイを行う。
GitHub Flowとは
GitHub Flowは、Git-flowを簡略化したものです。
Git-flowのような決まったブランチ名はありませんが、次のブランチを用いて開発していきます。
- master
本番環境のブランチ。常にリリース可能な状態である。 - 作業用ブランチ
作業開始時にmasterブランチから作成するブランチ。ブランチ名は、作業内容が分かりやすい名前にする。
GitHub Flowの開発の流れ
GitHub Flowを使った場合、以下のように開発していきます。
1. masterブランチからブランチを作成し、作業をする。
※作業用ブランチは定期的にプッシュすること。
2. 作業が完了したら、プルリクエストを作成し、コードのレビューを依頼する。
3. 2.で確認ができたら、masterブランチへマージする。
4. masterブランチにマージできたら、デプロイを行う。
「Git-flow」と「GitHub Flow」が使われる主なケース
Git-flowはブランチの種類が多い分、複雑ですが、運用ルールが徹底されているため、大規模プロジェクトや開発フェーズにおいて適しています。一方で、GitHub Flowは運用ルールが簡略化されている点や、プルリクエストによるコードレビューで品質を担保される点から、小規模のプロジェクトや運用フェーズに向いています。
まとめ
プロジェクトの規模や作業内容に適した運用ルールを用いることで、チーム開発の効率は上がると思います。他にも運用方法はあるため、各自が使いやすいルール設計を心掛けていきたいですね!
最後までお読みいただき、ありがとうございました。
関連記事
- 2022-10-21
- テクノロジー