【Git】git-flowとGitHub-flowの違いについて
目次
- git-flow
- 最初はからのコミットか始める
- すべての機能の開発はdevelopブランチからの分岐によって開始する
- developブランチがリリースできる段階のクオリティになったらreleaseブランチにマージする
- リリース後の後始末
- リリース後に見つかったバグの修正はmasterブランチから分岐する
git-flow
master
とdevelop
ブランチは消去されることがないmaster
ブランチに含まれるのは、製品としてリリースした
コードdevelop
ブランチに含まれるのは、今後リリースされる予定のコード- 開発途中ではあるが、単体の機能としてある程度完成されていたり、製品として組み込む予定ので完成している機能が組み込まれたブランチ
最初はからのコミットか始める
--allow-empty
スイッチを使用して、ファイルの無いコミットをする。- git-flowの
master
とdevelop
ブランチの始点になるコミットになる
- git-flowの
すべての機能の開発はdevelopブランチからの分岐によって開始する
- 新機能開発時は新しいブランチを
develop
から分岐させて作成する - コードの組み込み準備が完了したら、
develp
にマージする- マージ時は
fast-forward merge
を行わないように--no-ff
スイッチをつける
- マージ時は
develop
へのマージ後は使用していた新機能開発ブランチ
を消去する
developブランチがリリースできる段階のクオリティになったらreleaseブランチにマージする
- developブランチで
単体テスト
や簡易的な結合テスト
が完了したら、developブランチをrelease
ブランチを作成してそこにマージする - releaseブランチでは、最終テストやその他のバグの修正でコミットを追加することができる
- 本格的なテストのバグ修正は
release
ブランチで行うことになる
- 本格的なテストのバグ修正は
- すべてのコードの修正が終わり次第、
master
にマージするmaster
ブランチで表示されるコミットは、リリースしたコードのみ(修正コミットは入っていない)- マージ時は
fast-forward merge
を行わないように--no-ff
スイッチをつける
masterブランチ
のリリースコミットにはタグ
をつけることが規約で決まっている
リリース後の後始末
- releaseブランチには、修正コミットが入っている可能性があるので、
developブランチ
へのコミットをdevelopブランチ
へマージする- マージ時は
fast-forward merge
を行わないように--no-ff
スイッチをつける
- マージ時は
masterブランチ
,developブランチ
にマージが完了した、releaseブランチ
は消去する
リリース後に見つかったバグの修正はmasterブランチから分岐する
- リリースしたコードを修正したい場合、masterブランチのリリースコミットから分岐したブランチを作成する
- この時のブランチの名前は
hotfix-xxx
にするという規約がある - 修正後は、
masterブランチ
,developブランチ
にマージを行い、hotfix-xxx
ブランチは消去する
【Git】git-flowとGitHub-flowの違いについて
https://blog.djima.net/2021/03/23/【Git】git-flowとGitHub-flowの違いについて/