Dev Ops
GIT
Alur Kerja Git

Alur Kerja GIT

by Anugroho . 5 min read

Pendahuluan

GIT (opens in a new tab) adalah salah satu sistem kontrol yang paling populer saat ini, untuk menggunakan git ada beberapa cara dan beberapa metode, semua ini diatur dalam kerangka alur kerja GIT. Alur kerja Git dapat membuat developer dan devops bekerja sama dan memanfaatkan git secara efektif dan konsisten. saat bekerja dengan tim pada proyek yang sama, alur kerja git dapat membantu tim untuk mengatur dan mengelola perubahan yang dilakukan pada kode sumber. Alur kerja git juga dapat membantu tim untuk menghindari konflik yang tidak perlu saat menggabungkan kode. untuk itu penting untuk memastikan semua tim mempunyai pemikiran dan pemahaman yang sama tentang alur kerja git yang akan digunakan. Untuk memastikan tim berada di alur yang sama, alur kerja Git yang disepakati harus dikembangkan atau dipilih. Ada beberapa alur kerja Git yang dipublikasikan yang mungkin cocok untuk tim Anda. Di sini, kita akan membahas beberapa opsi alur kerja Git ini.

Macam-macam Workflow

  1. Centralized Workflow
  2. Feature Branch Workflow
  3. Forking Workflow
  4. Gitflow Workflow
  5. Gitlab Flow
  6. Github Flow

Centralized Workflow

central Flow

Ini alur kerja yang cocok untuk tim yang baru menggunakan Git dan tim yang tidak menggunakan Git. Alur kerja ini sangat sederhana dan tidak memerlukan banyak pengetahuan tentang Git.

Alur kerja ini menggunakan satu repositori pusat yang digunakan untuk menyimpan semua perubahan kode. Setiap anggota tim akan melakukan git clone dari repositori pusat dan melakukan perubahan pada kode. Setelah perubahan selesai, anggota tim akan melakukan git push ke repositori pusat. Alur kerja ini sangat sederhana dan mudah untuk diimplementasikan.

Namun, alur kerja ini memiliki beberapa kelemahan. Salah satu kelemahan utama adalah tidak ada cara untuk mengelola perubahan kode yang dilakukan oleh anggota tim. Jika ada dua anggota tim yang melakukan perubahan pada kode yang sama, maka akan ada konflik saat menggabungkan kode. Untuk menghindari konflik ini, anggota tim harus berkoordinasi dengan baik dan memastikan tidak ada dua anggota tim yang melakukan perubahan pada kode yang sama.

Forking Workflow

Forking-workflow

Ini adalah alur kerja yang berbeda dari alur kerja diatas, Forking Workflow menggunakan repositori masing-masing developer sebagai repositori server sendiri, hal ini sering terjadi pada proyek open source publik. Keuntungan dari menggunakan Forking working adalah kita bisa mengembangkan fitur sendiri tanpa mengganggu repositori asal/repositori pusat, kita bisa melakukan git push ke repositori kita sendiri, dan melakukan pull request ke repositori asal/repositori pusat. Alur kerja ini sangat baik untuk mengelola perubahan kode yang dilakukan oleh anggota tim.

Feature Branch Workflow

Ini adalah alur kerja yang sangat populer dan banyak digunakan oleh tim pengembang. Alur kerja ini menggunakan repositori pusat yang sama dengan alur kerja terpusat. Namun, alur kerja ini menggunakan cabang untuk mengelola perubahan kode.

Setiap anggota tim akan melakukan git clone dari repositori pusat dan membuat cabang baru untuk setiap fitur yang akan dikembangkan. Setelah fitur selesai dikembangkan, anggota tim akan melakukan git push ke repositori pusat. Setelah itu, anggota tim akan melakukan permintaan tarik atau menggabungkan ke cabang master.

Alur kerja ini sangat baik untuk mengelola perubahan kode yang dilakukan oleh anggota tim. Namun, alur kerja ini memiliki beberapa kelemahan. Salah satu kelemahan utama adalah tidak ada cara untuk mengelola perubahan kode yang dilakukan oleh anggota tim. Jika ada dua anggota tim yang melakukan perubahan pada kode yang sama, maka akan ada konflik saat menggabungkan kode. Untuk menghindari konflik ini, anggota tim harus berkoordinasi dengan baik dan memastikan tidak ada dua anggota tim yang melakukan perubahan pada kode yang sama.

GitFlow Workflow

Gitflow

Git Flow (opens in a new tab) dibuat oleh Vincent Driessen pada tahun 2010, ini awal mula dikenalkan git branch strategy, Git Flow adalah salah satu workflow pertama yang diperkenalkan ke publik, dan sampai sekarang masih banyak digunakan oleh banyak organisasi.

Git Flow menggunakan branch development dan branch master/main, branch development digunakan untuk mengembangkan fitur baru, dan branch master digunakan untuk menyimpan kode yang siap untuk di distribusikan ke production. Git Flow juga menggunakan branch release, branch release digunakan untuk menyimpan kode yang siap untuk di release ke production, branch release ini dibuat dari branch development, dan setelah kode siap untuk di release ke production, branch release akan di merge ke branch master dan branch development. Git Flow juga menggunakan branch hotfix, branch hotfix digunakan untuk memperbaiki bug di production, branch hotfix dibuat dari branch master, dan setelah kode selesai diperbaiki, branch hotfix akan di merge ke branch master dan branch development.

Git Flow ini mempunyai tool untuk mempermudah kita dalam melakukan manajemen branching, untuk menjalankan tool ini kita bisa mengikuti tutorial yang ada di tautan ini (opens in a new tab).

GitHub Workflow

Github-Workflow

Github Workflow (opens in a new tab) adalah alur kerja yang paling simple, yang bisa digunakan oleh tim yang kecil atau aplikasi web sederhana yang tidak membutuhkan banyak versioning. Banyak organisasi yang menggunakan alur kerja ini, karena alur kerja ini sangat simple dan mudah untuk diimplementasikan.

Di dalam Github Workflow, branch master/main adalah branch yang berisi kode utama yang siap didistribusikan ke production, untuk membuat fitur baru, kita bisa membuat branch baru bernama feature dari branch master/main, dan setelah fitur selesai dikembangkan, kita bisa melakukan pull request ke branch master/main, dan setelah itu kita bisa melakukan merge ke branch master/main. jadi apabila ada kesalahan/bug di production kita hanya membuat branch baru dari master/main lalu melakukan perbaikan di branch tersebut, dan setelah selesai kita bisa melakukan pull request ke branch master/main, dan setelah itu kita bisa melakukan merge ke branch master/main. Namun alur kerja ini memiliki kelemahan, salah satunya karena tidak ada branch development, maka kita tidak bisa melakukan testing sebelum melakukan merge ke branch master/main.

Github-Workflow2

GitLab Workflow

Gitlab-Workflow2

Gitlab Workflow (opens in a new tab) lebih sederhana dari git-flow tetapi lebih terstruktur daripada github-workflow. Gitlab Workflow menggunakan branch master/main dan branch develop, branch master/main digunakan untuk menyimpan kode yang siap untuk di distribusikan ke production, dan branch develop digunakan untuk mengembangkan fitur baru. Gitlab Workflow juga menggunakan branch feature, branch feature digunakan untuk mengembangkan fitur baru, branch feature dibuat dari branch develop, dan setelah fitur selesai dikembangkan, branch feature akan di merge ke branch develop. Gitlab Workflow juga menggunakan branch release, branch release digunakan untuk menyimpan kode yang siap untuk di release ke production, branch release ini dibuat dari branch develop, dan setelah kode siap untuk di release ke production, branch release akan di merge ke branch master/main dan branch develop. Gitlab Workflow juga menggunakan branch hotfix, branch hotfix digunakan untuk memperbaiki bug di production, branch hotfix dibuat dari branch master/main, dan setelah kode selesai diperbaiki, branch hotfix akan di merge ke branch master/main dan branch develop.

Gitlab-Workflow

Referensi

  1. https://www.gitkraken.com/learn/git/git-flow#main-branch (opens in a new tab)
  2. https://docs.github.com/en/get-started/quickstart/github-flow (opens in a new tab)
  3. https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow (opens in a new tab)
  4. https://cm-gitlab.stanford.edu/help/workflow/gitlab_flow.md (opens in a new tab)