Git Flow

Andri N. R
Dekowarehouse Project
3 min readApr 19, 2018

Pada kali ini saya akan menjelaskan mengenai penerapan GitFlow yang dilakukan dalam pengerjaan project yang kita kerjakan yakni dekowarehouse.

Sebelum lanjut ke dalam implementasi, alangkah baiknya jika mengerti gitflow secara konsep dasar dan teorinya.

Bisa dikatakan secara sederhana, GitFlow adalah model percabangan untuk Git. GitFlow di perkenalkan oleh pembuatnya yakni Vincent Driessen. GitFlow telah menarik banyak perhatian karena sangat cocok untuk kolaborasi dan meningkatkan kinerja tim developer.

Advantages

Dalam menerapkan GitFlow terdapat beberapa keuntungan diantaranya,

1. Parallel Development
Dengan menggunakan gitflow, pengerjaan secara paralel akan terasa sangat mudah, karena adanya pemisahan antara tahap pengembangan dan tahap yang sudah selesai, fitur-fitur baru dikerjakan dalam branch fitur, dan apabila selesai maka dimerge ke dalam branch untuk tahap yang sudah selesai.

2. Collaboration
Dengan adanya fitur branching, akan sangat memudahkan developer untuk berkolaborasi dalam mengerjakan suatu fitur pada branch yang sama, kita akan dengan mudah menemukan apa yang dikerjakan oleh developer lain didalam branch tersebut.

3. Release Staging Area
Dalam PPL tahun ini, ketika kita sudah menyelesaikan suatu fitur, maka akan dijadikan satu (merge) pada branch yang bernama sit_uat, dimana branch tersebut adalah staging area yang berisi program kita yang sudah lengkap namun belum di release.

4. Support for Emergency Fixes
Ketika suatu saat program kita memiliki error saat sudah release, kita tidak perlu khawatir karena kita bisa mensolved hal tersebut didalam hot-fix branch yang memang dirancang untuk menangani hal tersebut.

How it Works?

Terdapat beberapa branch yang digunakan dalam pengerjaan project ini mengacu pada PPL tahun ini

Main Branch
Master: Branch yang berisi source code semua fitur dari project kita yang siap untuk di release
Sit_uat: Branch yang berisi source code semua fitur dari project kita yang sudah selesai.

Supporting Branch
Feature: Branch yang berisi fokus dari satu fitur tertentu. Branch ini merupakan bawahan dari branch sit_uat, sehingga apabila feature tersebut telah selesai maka akan dilakukan penggabungan ke dalam branch sit_uat
Hot-fix: Branch bawahan dari master yang berfungsi untuk tempat memperbaiki program apabila terdapat error atau bug dalam master.
Cold-fix: Branch bawahan dari sit_uat, yang berfungsi apabila suatu fitur ternyata ditolak oleh product owner sehingga tempat perbaikannya adalah pada branch cold-fix ini.

How we Implement it?

Dalam proyek dekowarehouse, kami telah menerapkan GitFlow dalam kesehariannya, dimana kami memiliki branch master, dan turunan dari branch master tersebut kami membuat sebuah branch yang bernama sit_uat.

Dari branch sit_uat tersebut, dibuat suatu branch untuk setiap fitur yang akan dibut, jadi dalam pengerjannya, pertama kami akan mengerjakan hal tersebut didalam branch feature, ketika sudah selesai maka kami akan melakukan merge kedalam branch sit_uat, dalam perjalanannya apabila terdapat suatu fitur yang ditolak oleh product owner, maka perbaikannya dilakukan didalam branch cold-fix, lalu dikembalikan di branch sit_uat. dengan kata lain sit_uat berisi semua source_code dari semua fitur yang telah selesai dikerjakan.

Apabila sudah tidak ada masalah lagi dalam branch sit_uat, maka waktunya melakukan merge ke dalam branch master, untuk dilakukan release product, apabila dalam perjalanannya product yang telah di release memiliki error, maka kita akan melakukan perbaikan code tersebut pada branch hot-fix. Dan hal ini akan berlangsung secara berulang sampai project selesai.

Rereferences

--

--