Wondering What Git Flow is?

Qurrata Adrianus
Dekowarehouse Project
4 min readMar 20, 2018

Memasuki minggu ke-7, sudahkah kamu paham mengenai Git Flow (terutama untuk perkuliahan PPL 2018)? Sedikit bercerita, semenjak mengikuti mata kuliah Proyek Perangkat Lunak, aku belajar banyak hal terutama dalam hal kolaborasi dengan teman-teman sesama developer. Nah, salah satu hal yang aku pelajari adalah mengenai penggunaan git flow selama proses pengembangan aplikasi Dekowarehouse.

Jelasin, jangan?

Understanding Git Flow

Git Flow adalah sebuah bentuk branching model dari git yang dikenalkan oleh Vincent Driessen a.k.a nvie. Di luar dari berbagai pro-kontra mengenai git flow, model ini merupakan suatu hal yang cocok untuk melakukan kolaborasi dan mengukur pekerjaan suatu developer team. Hal itu dikarenakan git flow dapat mempermudah kita dalam meninjau pekerjaan team. Well, memangnya keuntungannya apa?

Key Benefits of Git Flow

Parallel Development

Dengan git flow, suatu fitur yang masih pada tahap pengembangan dapat dikerjakan secara terpisah dengan pekerjaan yang sudah selesai sehingga Kamu nggak perlu takut jika suatu saat terjadi conflict dan mempengaruhi pekerjaanmu yang sudah lalu. Selain itu, pekerjaan juga dapat dipisah dengan branch yang disesuaikan dengan masing-masing pekerjaan sehingga tidak perlu lagi khawatir jikalau teman-teman sesama developer merusak kodingan Kamu. Ain’t it fun?

Collaboration

Ada suatu istilah bernama “features branch” dimana memungkinkan Kamu dan dev team untuk berkolaborasi pada suatu fitur karena setiap perubahan yang dilakukan tentunya hanya perubahan agar fitur yang sedang dikerjakan dapat selesai dan sesuai dengan ekspektasi.

Release Staging Area

Kamu udah selesai dengan pekerjaanmu? Sekarang kamu sudah bisa loh merge ke develop branch (staging area). Perlu diingat, staging does not mean being released!

Support for Emergency Fixes

Salah satu keuntungan menggunakan git flow adalah adanya support agar jika terjadi masalah saat merge di master branch, Kamu tetap bisa memperbaikinya dengan mudah. (We call it emergency fixes with hotfix). Thinking that git flow is good now?

Anyway, yuk belajar lagi tentang cara kerja git flow!

How Does It Work?

Sebenarnya kalau browsing di internet ada beberapa macam bentuk cara kerja git flow loh. Tapi, untuk mata kuliah PPL, git flow sudah disesuaikan dengan mengkombinasikan standar industri dan kemudahan pada perkuliahan. So, let me tell you this!

Git Flow mata kuliah PPL 2018

Secara umum, git flow dapat dibagi menjadi beberapa branch.

Main Branches

Terdiri dari branch master, yaitu berisi source-code yang sudah siap untuk di deploy, dan branch sit_uat yang merupakan branch khusus untuk melakukan development.

Supporting Branches

Adalah branch-branch yang dibuat sesuai dengan fungsi-fungsi tertentu. Selayaknya, branch-branch tipe ini dihapus pada saat pekerjaan yang terkait dengan hal tersebut telah selesai diimplementasikan. (Tapi ngga di mata kuliah ini yaa, coz itu bisa jadi bukti terkait pekerjaan kamu loh). Supporting branches dalam hal ini terdiri dari:

  1. Features/User Stories branches
  2. Hotfix Branch, yaitu branch yang digunakan saat terjadi bug ketika melakukan merging ke branch master. Dengan begitu, debug tidak dilakukan langsung di master tetapi tetapi dikembalikan ke master setelah selesai debugging pada branch hotfix.
  3. Coldfix Branch, yaitu branch yang digunakan apabila saat melakukan sprint review, product owner menolah salah satu atau lebih dari user story yang telah diimplementasikan. Branch ini dibuat di bawah branch sit_uat.

Release Branches

Ini adalah branch khusus yang digunakan untuk melakukan release yang dapat dilakukan apabila semuanya sudah bisa di merge ke master dari develop.

Anyway, tadi di atas adalah beberapa branch terkait dengan git flow. Adapun alur yang terjadi adalah dari branch master, dibuat sebuah branch khusus development bernama sit_uat. Kemudian Kamu mulai dapat bekerja dengan membuat branch user stories dari sit_uat. Do everything here! Termasuk jika ada bug yang harus diselesaikan. Selanjutnya, jika sudah selesai, Kamu bisa merge ke sit_uat untuk menandakan bahwa fitur tersebut telah selesai dikerjakan.

Then, what if something wrong happen? Product Owner nggak setuju? Sekarang saatnya memperbaiki hal-hal tersebut di coldfix branch. Jika sudah selesai bisa dikembalikan ke sit_uat. Kemudian, jika development di sit_uat sudah selesai dikerjakan, dapat merge ke master loh! Tenang saja jika ada masalah di master karna kamu bisa memperbaikinya di hotfix branch dan mengembalikannya ke master. Sounds good, ha?

Nah, disini lah peran code review sangat besar. Kamu dan teman-teman developer seharusnya sudah mampu menjalankan code review sebelum melakukan merge. Kenapa? Karena, dev team harus mengerti dan sepakat terlebih dahulu akan semua pekerjaan sehingga dapat mengurangi terjadinya conflict dan hal-hal buruk lainnya. Communication is a big thing, now!

Okedeh, sekian dulu yaaa. Next aku bakalan cerita dan berbagi ilmu lagi looh!

Source:

--

--