はじめに
今回は、「git-flowとGithub-flowの違い」について書きたいと思います!
とてもわかりやすいサイトを見つけたので、その紹介とまとめを書いてみました!
ぜひ、最後まで見ていただけたら嬉しいです!!
参考サイト
GitHub Flow
GitHub Flowは、Git-flowを簡略化したものです。
Git-flowのような決まったブランチ名はありません。
運用ルールが簡略化されている点や、プルリクエストによるコードレビューで品質を担保される点から、小規模のプロジェクトや運用フェーズに向いています。
-
master(本番環境のブランチ)
- 常にリリース可能な状態の本番環境ブランチ
-
作業用ブランチ(作業開始時にmasterブランチから作成するブランチ)
- ブランチ名はに決まりはなく、わかりやすい名前をつける
株式会社スーパーソフトウエア,【Git】ブランチ運用ルール「Git-flow」と「GitHub Flow」,
(2023年7月20日取得,https://supersoftware.jp/tech/20221021/17928/ )
流れ
-
masterブランチからブランチを作成し、作業をする。
※作業用ブランチは定期的にプッシュすること。 -
作業が完了したら、プルリクエストを作成し、コードのレビューを依頼する。
-
2.で確認ができたら、masterブランチへマージする。
-
masterブランチにマージできたら、デプロイを行う。
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】ブランチ運用ルール「Git-flow」と「GitHub Flow」,
(2023年7月20日取得,https://supersoftware.jp/tech/20221021/17928/ )
- オプションであり、使わないこともある。
流れ
-
masterブランチからdevelopブランチを作成し、developブランチからfeatureブランチを作成する。
-
featureブランチで開発をする。
-
2.が完了したら、developブランチにマージする。
-
developブランチにいくつかのfeatureブランチがマージされたら、developブランチをreleaseブランチにマージし、リリースのための微調整を行う。
-
4.が完了したら、releaseブランチをmasterブランチとdevelopブランチにマージする。
-
masterブランチにマージできたら、デプロイを行う。
※バグが発生した場合
-
masterブランチから直接hotixブランチを作成する。
-
hotfixブランチで修正が完了したら、masterブランチとdevelopブランチにマージする。
-
masterブランチにマージできたら、デプロイを行う。
最後に
最後まで読んでいただきありがとうございました!
ブランチワークは日頃の開発業務で切っても切り離せないものだと思うので、git-flowとGithub-flowの違いは確実に抑えたいと思います!
もし、皆様のGit関連で分かりやすいおすすめのサイトがあれば教えてください!!