Gitflow adalah model kerja Git yang diciptakan oleh Vincent Driessen. Ini adalah pendekatan yang sangat terstruktur untuk manajemen cabang Git yang menekankan pada penggunaan cabang fitur dan beberapa cabang utama untuk pengembangan. Meskipun Gitflow telah menurun popularitasnya dibandingkan dengan workflow berbasis trunk, namun masih banyak yang menggunakan Gitflow untuk proyek dengan siklus rilis terjadwal.
Untuk memahami bagaimana Gitflow bekerja dalam praktik, penting untuk mengetahui peran dari setiap cabang utama yang digunakan dalam workflow ini. Dengan memahami fungsi dan interaksi antar cabang tersebut, kita bisa lebih mudah mengelola dan merencanakan proses pengembangan dan rilis dalam proyek.
1. Cabang (Branch) Utama
Setiap cabang dalam Gitflow memiliki peran dan fungsi spesifik yang membantu dalam mengelola berbagai tahap pengembangan dan rilis. Berikut adalah penjelasan singkat mengenai fungsi utama dari masing-masing cabang:
1.1 Cabang Main (Main Branch)
Menyimpan riwayat rilis resmi. Ini adalah cabang yang mencerminkan kode yang siap produksi dan biasanya ditandai dengan nomor versi untuk setiap rilis.
1.2 Cabang Develop (Develop Branch)
Berfungsi sebagai cabang integrasi untuk fitur-fitur. Ini adalah tempat di mana fitur yang sedang dikembangkan dan siap untuk diuji dikumpulkan sebelum siap untuk rilis.
2. Cabang (Branch) Pendukung
Cabang utama adalah tulang punggung dari proyek, di mana cabang ini mencerminkan kode yang telah diuji dan siap untuk digunakan atau dirilis. Namun, untuk mendukung pengembangan yang lebih dinamis dan terorganisir, Gitflow juga menggunakan beberapa cabang pendukung. Cabang pendukung membantu dalam mengelola pekerjaan yang lebih spesifik seperti pengembangan fitur baru, perbaikan bug, dan persiapan rilis.
2.1 Cabang Fitur (Feature Branch)
Digunakan untuk pengembangan fitur baru. Setiap fitur dikembangkan secara terpisah di cabang ini dan kemudian digabungkan kembali ke cabang pengembangan (develop branch) setelah selesai.
2.2 Cabang Rilis (Release Branch)
Digunakan untuk persiapan rilis baru. Ini adalah tempat di mana perubahan akhir dilakukan sebelum rilis, seperti perbaikan bug kecil dan persiapan metadata rilis.
2.3 Cabang Perbaikan (Hotfix Branch)
Digunakan untuk melakukan perbaikan cepat pada rilis yang sudah ada dalam pengembangan perangkat lunak. Perbaikan ini dibuat langsung dari cabang utama (main branch) ke cabang perbaikan (hotfix branch) dan kemudian digabungkan kembali ke cabang utama dan cabang pengembangan (develop branch) setelah selesai, memastikan konsistensi dan stabilitas sistem.
3. Alur Kerja Gitflow
3.1 Pengembangan Fitur
Fitur baru dikembangkan di cabang feature yang dibuat dari cabang pengembangan (develop branch). Ini memungkinkan pengembangan fitur secara terisolasi tanpa mengganggu kode utama.
3.2 Integrasi Fitur
Setelah fitur selesai dikembangkan, cabang feature digabungkan kembali ke cabang pengembangan (develop branch) di mana fitur tersebut diintegrasikan dengan perubahan lain dan siap untuk diuji.
3.3 Persiapan Rilis
Ketika fitur di cabang pengembangan (develop branch) siap dirilis, cabang release dibuat dari cabang pengembangan (develop branch). Di cabang ini, tim dapat melakukan perubahan terakhir seperti perbaikan bug dan persiapan metadata.
3.4 Rilis
Setelah rilis siap, cabang release digabungkan ke cabang main (main branch) dan cabang pengembangan (develop branch) yang dapat mencerminkan rilis terbaru di cabang utama (main branch) kemudian di sisi lain cabang pengembangan (develop branch) mendapatkan perubahan dari rilis tersebut.
3.5 Perbaikan Cepat
Jika kita menemukan bug pada rilis yang sudah ada, kita bisa segera memperbaikinya tanpa harus menunggu fitur-fitur baru yang sedang dikembangkan selesai terlebih dahulu. Untuk itu, kita bisa membuat cabang perbaikan (hotfix branch) dari cabang utama (main branch). Ini memungkinkan kita untuk fokus secara langsung pada perbaikan bug tanpa harus terpengaruh oleh pengembangan fitur-fitur baru yang sedang berlangsung di cabang pengembangan. Dengan cara ini, kita dapat memastikan bahwa perbaikan bug akan segera diterapkan pada versi kode yang sedang berjalan di lingkungan produksi.
4. Kesimpulan
Gitflow adalah model kerja yang cocok untuk proyek dengan siklus rilis yang terdefinisi dengan baik. Meskipun ada tantangan dalam penggunaannya, namun Gitflow mampu menyediakan kerangka kerja yang jelas untuk manajemen rilis.
Penulis :
Aga Widyansyah, sarjana strata satu perguruan tinggi di Jakarta yang sekarang bekerja sebagai System Analyst di salah satu perusahaan di Jakarta, seorang IT enthusiast yang tertarik dalam IT Life Cycle yang kurang lebih sudah 4 tahun belajar di dunia IT profesional.
Referensi :
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
https://www.gitkraken.com/learn/git/git-flow
https://dev.to/abdelrahmanallam/git-workflow-a-guide-to-git-workflow-models-44hh