Our New Git Flow

Yusuf Sholeh
PPL A-4 YUK RECYCLE
3 min readApr 16, 2019

Hi! kembali lagi bersama saya, yusuf. Pada kesempatan kali ini saya akan membahas git flow baru pada kelompok kami.

Source: Git flow PPL

Permasalahan commit RED, GREEN, BLUE untuk monorepo dan single user story untuk back-end dan front-end

Perhatikan bahwa, untuk sebuah user story mungkin saja terdapat tabrakan antara front-end dan back-end. Misalkan terdapat sebuah user story bernomor 10 dan terdapat dua developer front-end dan back-end. Misalkan sebuah developer back-end ingin melakukan push dengan commit [GREEN] pada US-10, namun posisi front-end adalah sedang [RED] pada branch yang sama (US-10). Apapun yang terjadi, apabila developer back-end melakukan push dengan commit [GREEN], hasilnya adalah selalu [RED] karena posisi sekarang adalah [RED] pada front-end. Sehingga yang terjadi adalah back-end menunggu front-end untuk [GREEN] terlebih dahulu. Maka dari itu, untuk sebuah user story pada kelompok kami, dipecah menjadi back-end dan front-end.

Manfaat kedua adalah, dengan melakukan hal tersebut, task yang dikerjakan menjadi lebih independent dan lebih jelas apa saja yang dikerjakan. Hal ini mengakibatkan mudahnya untuk melakukan tracing apabila terjadi sebuah bug. Apabila terdapat bug pada front-end, maka cek saja branch front-end, namun apabila terdapat bug pada sisi back-end, maka cek branch back-end.

Git Merge vs Git Rebase

Kali ini saya akan coba membahas git merge dan git rebase. Pada gambar berikut, misalkan cabang kuning adalah branch yang dituju dan cabang ungu adalah branch asal.

merge vs rebase

Perintah git rebase melakukan commit satu persatu pada branch yang dituju dengan urutan commit sesuai branch asal. Commit akan ditandai sebagai commit baru dan waktunya pun baru (waktu setelah node kuning). Perhatikan bahwa branch asal tidak ada (menghilang) di sisi history branch yang dituju.

Sedangkan perintah git merge hanya ujung dari commit dari branch asal bergabung dengan branch yang dituju. Disini branch asal tetaplah ada di dalam history commit.

Dapat disimpulkan bahwa keunggulan git rebase yaitu branch menjadi simpel dikarenakan tidak bercabang, serta tidak ada commit tambahan pada saat merge. Dengan menggunakan flow git rebase, perintah seperti git log menjadi lebih mudah.

Sedangkan untuk git merge, terdapat sebuah commit tambahan pada saat merge, serta setiap history commit menjadi lebih jelas dan lengkap dari mana asal commit tersebut berada. Namun, dengan flow ini memungkinkan penggunaan fitur-fitur git lainnya seperti (git log) menjadi lebih susah dan kompleks apabila branch sudah terlalu banyak.

Sekian, semoga bermanfaat!

--

--