
GitLab flow とは
目次
概要
前回は は GitHub flow について説明しました。 本記事では ブランチ戦略の一つ GitLab flow について紹介します。
GitLab とは
そもそも GitLab flow の GitLab はどこから来ているか?
実は GitLab という会社名から由来しています。
https://about.gitlab.com/
GitHub のプライベート・高機能版です。
GitLab flow とは
GitLab flow は Gitflow と同様に状態に応じて、ブランチを管理します。 Gitflow とほぼほぼ似ています。
GitLab flow を一言で表現すると:
- main を中心に開発を行い、開発が終わったら production ブランチにリリースする手法です。
ここで、主体となるブランチと、それぞれのシナリオごとでの流れについて説明します。
主ブランチ
まず主体となるブランチについてです。
GitLab flow では main, pre-production, production が主体のブランチです。
運用方法として、 main ブランチから feature etc. ブランチを派生して、feature に対応する仕様を満たした時点で main にPR・マージします。
main は pre-production に向けて、PR・マージを、 pre-production は production に向けて、PR・マージを、 pre-production は production に向けて PR ・マージします。
main にマージしたら、ローカルにプルし、ローカルの main を更新します。
次に、それぞれのシナリオでどのようにするかについて説明します。
機能追加
main ブランチからブランチを派生して、十分実装したと判断した時に main に PR ・マージします。
リリース
main は pre-production に向けて、PR・マージを、 pre-production は production に向けて、PR・マージを、 pre-production は production に向けて PR ・マージします。
main にマージしたら、ローカルにプルし、ローカルの main を更新します。
Hot Fix
main ブランチからブランチを派生して、十分実装したと判断した時に main に PR ・マージします。 終了後、リリースと同様の操作をします。(例外あり)
その他
Gitflow との違い
Gitflow では develop, master というブランチを使っていました。 一見、branch 名が違うから、GitLab flow と大きく運用方法違うのでは思うかもしれません。 しかし、 develop => main, master => production、release => pre-production と対応させると、機能追加、リリースのの流れはそれほど変わらないです。
では結局どこが違うか?
Hot Fix の対応の仕方です。
Gitflow の場合は GitLab flow の production から派生します。 GitLab flow は main (Gitflow の develop) から派生します。
派生したあと、 production 適用時は production ブランチにダイレクトにマージ (あるいは cherry pick) する方法もありますが、一般的には pre-production を介してリリースします。
まとめ
以上が GitLab flow についてでした。 今後とも、参考にしていただけたらと思います。