Blog Post

GitLab flow とは


作成日 2023-02-16

目次

概要

前回は は 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 についてでした。 今後とも、参考にしていただけたらと思います。

参考文献