Apa itu Gitflow
Gitflow adalah alternatif Git branching yang melibatkan penggunaan feature branch dan beberapa branch utama. Jika dibandingkan dengan trunk-based development, Gitflow memiliki banyak branch dan banyak commit. Dalam Gitflow, developer bisa membuat feature branch dan bisa menunda merging ke main branch sampai feature tersebut selesai.
Gitflow juga dapat digunakan untuk project yang mempuanyai jadwal perilisan.
Cara Kerja
Develop dan Main Branch
Feature Branch
Release Branch
Menggunakan dedicated release branch memungkinkan untuk menyempurnakan release saat ini dan sementara tim lain bisa mengerjakan feature untuk release selanjutnya.
Ketika release siap untuk dibawa ke production, release branch akan di merge ke main dan develop branch, dan release branch akan dihapus.
Hotfix Branch
Setelah hotfix selesai, hotfix branch harus di merge kemabali ke main, develop dan ke release branch saat ini, dan main branch harus di tag dengan versi yang terbaru.
Cara Memulai
Git-flow merupakan wrapper dari Git, dan instalasinya cukup mudah.
# MAC
brew install git-flow
# Ubuntu
sudo apt -y install git-flow
Inisialisasi Project
git flow init
Feature Branch
# Membuat feature branch
git flow feature start feature_branch
# Menyelesaikan feature branch
git flow feature finish feature_branch
Release Branch
# Membuat release branch
git flow release start 0.1.0
# Menyelesaikan release branch
git flow release finish '0.1.0'
Hotfix Branch
# Membuat hotfix branch
git flow hotfix start hotfix_branch
# Menyelesaikan hotfix branch
git flow hotfix finish hotfix_branch
Kesimpulan
Beberapa hal yang perlu diketahui tentang Gitflow:
- Gitflow bagus untuk release-based workflow.
- Gitflow menawarkan alur khusus untuk hotfix ke production.
- Tidak harus memakai Gitflow, jika ingin cepat dalam proses release bisa menggunakan trunk-based development.
referensi: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow