Belajar Git Branching Strategies - GitLab Flow & Environment Branches
Episode 8 of 21

Belajar Git Branching Strategies - GitLab Flow & Environment Branches

Kombinasi GitHub Flow dengan environment branches untuk deployment hierarchy: main ke pre-production ke production, release branching untuk maintenance versi lama, serta keunggulan fleksibilitas GitLab Flow yang mendukung berbagai deployment model dan multiple environments.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 7 kita mempelajari GitHub Flow — satu branch persisten, semua via PR, deploy dari main — pada episode ini kita mempelajari GitLab Flow, pendekatan yang menggabungkan kesederhanaan GitHub Flow dengan environment branches untuk deployment hierarchy.

GitLab Flow muncul dari kebutuhan nyata: banyak produk tidak bisa langsung deploy ke production dari main. Mereka membutuhkan tahapan: development → staging → production. GitFlow terlalu kompleks untuk ini, GitHub Flow terlalu sederhana. GitLab Flow mengisi celah tersebut.

Konsep GitLab Flow

Prinsip inti GitLab Flow:

  1. main adalah branch development utama (sama seperti GitHub Flow).
  2. Environment branches (pre-production, production) dikhususkan untuk deployment.
  3. Merge forward: perubahan mengalir dari main ke environment branches secara berurutan.
100%

Alur Deployment

BranchEnvironmentTujuan
mainDevelopmentKode terbaru, semua fitur
pre-productionStaging/QAKode yang diuji sebelum production
productionProductionKode yang sudah live

Ketika kode siap di-deploy ke staging, merge main ke pre-production. Setelah diuji dan approved, merge pre-production ke production.

Release Branching di GitLab Flow

Untuk produk yang perlu maintenance versi lama (enterprise software, mobile apps), GitLab Flow mendukung release branches:

Buat branch stable untuk maintenance versi lama
git switch main
git checkout -b stable-1.0

Branch stable-1.0 adalah versi yang sudah di-deploy. Jika ada bug fix yang perlu di-backport:

Cherry-pick fix ke stable branch
git cherry-pick <commit-hash>

Cherry-pick mengambil commit tertentu dari main dan menerapkannya ke stable-* tanpa merge seluruh branch. Kita akan membahas cherry-pick secara mendalam di episode 11.

Keunggulan GitLab Flow

Fleksibel

GitLab Flow mendukung berbagai deployment model:

  • Environment-based: mainpre-productionproduction.
  • Release-based: mainstable-1.0, stable-2.0.
  • Combination: keduanya bersamaan.

Mendukung Multiple Environments

Produk dengan environment dev, staging, production, dan mungkin canary/blue-green bisa menggunakan environment branches untuk mengontrol alur deployment tanpa kompleksitas GitFlow.

Kapan Menggunakan GitLab Flow

KondisiGunakan GitLab Flow?
Aplikasi dengan environment staging/dev sebelum productionYa
Produk yang perlu maintenance versi lamaYa
SaaS dengan continuous deliveryGitHub Flow lebih sederhana
Produk dengan release quarterlyGitFlow lebih terstruktur

Note

GitLab Flow adalah compromise antara kesederhanaan GitHub Flow dan kompleksitas GitFlow. Gunakan ketika kalian membutuhkan environment hierarchy tetapi tidak memerlukan lima jenis branch.

Penutup

Pada episode 8 ini, kalian telah memahami GitLab Flow:

  • Kombinasi GitHub Flow + environment branches untuk deployment hierarchy.
  • Merge forward: mainpre-productionproduction.
  • Release branching untuk maintenance versi lama via cherry-pick.
  • Fleksibel: mendukung berbagai deployment model dan multiple environments.
  • Cocok untuk produk dengan environment staging dan maintenance versi lama.

Di episode 9 selanjutnya kita akan mempelajari Release Management & Version Branching — Semantic Versioning, git tags, changelog otomatis dari Conventional Commits, dan release branch strategy. Sampai jumpa di episode 9!

Belajar Git Branching Strategies - GitLab Flow & Environment Branches | Belajar Git Branching Strategies