Traffine I/O

Bahasa Indonesia

2023-03-10

Git Flow

Apa itu Git Flow

Git Flow adalah sebuah model branching untuk Git, yang menyediakan sejumlah pedoman untuk mengelola codebase pada proyek perangkat lunak. Ini adalah workflow yang populer digunakan oleh banyak tim pengembangan perangkat lunak untuk memperlancar proses pengembangan dan memastikan bahwa perubahan kode dikelola dan diuji dengan baik sebelum digabungkan ke dalam codebase utama.

Pada intinya, Git Flow berputar di sekitar dua cabang utama: master dan develop. Cabang master mewakili versi stabil dari kode, sedangkan cabang develop adalah tempat fitur baru dikembangkan dan diintegrasikan. Selain itu, Git Flow menentukan sejumlah cabang lainnya, termasuk cabang fitur, cabang rilis, dan cabang hotfix, masing-masing dengan tujuan dan pedoman khususnya.

Cabang fitur digunakan untuk mengembangkan fitur baru, dengan setiap cabang fitur dibuat dari cabang develop. Cabang rilis digunakan untuk mempersiapkan rilis baru, dan dibuat dari cabang develop setelah semua fitur untuk rilis telah selesai. Cabang hotfix digunakan untuk memperbaiki bug kritis pada versi stabil dari kode, dan dibuat dari cabang master.

Dengan mengikuti model Git Flow, tim bisa memastikan bahwa fitur-fitur baru diuji dan diintegrasikan dengan baik sebelum dirilis, dan bahwa bug segera teridentifikasi dan diperbaiki pada versi stabil dari kode. Ini juga menyediakan struktur yang jelas untuk mengelola perubahan kode, sehingga memudahkan para pengembang untuk berkolaborasi dan bekerja bersama pada codebase.

Alur kerja Git Flow

Alur kerja Git Flow terdiri dari beberapa cabang, masing-masing dengan tujuan dan tanggung jawabnya sendiri. Berikut adalah cabang-cabang utama dari Git Flow.

Git Flow
A successful Git branching model

Cabang Master

Cabang master adalah cabang utama dari repositori dan berisi kode yang stabil dan siap diproduksi. Semua kode yang diunggah ke cabang master harus diuji sepenuhnya dan bebas dari bug.

Cabang Develop

Cabang develop adalah cabang di mana para pengembang menggabungkan cabang feature mereka untuk mengintegrasikan perubahan mereka ke dalam kode utama. Cabang ini berfungsi sebagai versi kerja dari kode dan di mana sebagian besar pekerjaan pengembangan dilakukan.

Cabang Feature

Cabang feature digunakan untuk mengembangkan fitur baru atau perubahan pada kode. Pengembang membuat cabang feature baru dari cabang develop dan bekerja pada perubahannya secara terpisah. Setelah fitur selesai, itu digabungkan kembali ke dalam cabang develop.

Cabang Release

Cabang release digunakan untuk mempersiapkan kode untuk rilis baru. Dibuat dari cabang develop ketika semua fitur baru untuk rilis selesai. Cabang release adalah tempat di mana pengembang melakukan pengujian akhir, perbaikan bug, dan perubahan kecil sebelum merilis versi baru.

Cabang Hotfix

Cabang hotfix digunakan untuk memperbaiki bug atau masalah yang kritikal yang ditemukan dalam kode produksi. Dibuat dari cabang master dan hanya berisi perbaikan yang diperlukan untuk menyelesaikan masalah. Setelah hotfix selesai, itu digabungkan kembali ke cabang master dan develop.

Git Flow dan Penandaan

Salah satu fitur utama dari Git Flow adalah penggunaan penandaan atau tag, yang memungkinkan pengembang menandai tonggak penting dalam proses pengembangan mereka.

Dalam Git Flow, tag biasanya digunakan untuk menandai rilis, hotfix, atau peristiwa penting lainnya dalam siklus pengembangan. Ketika versi baru perangkat lunak dirilis, tag dibuat untuk menandai komit tertentu yang sesuai dengan rilis tersebut. Hal ini memudahkan pengembang untuk melacak versi kode yang digunakan untuk membuat rilis tertentu dan untuk melakukan rollback ke versi tertentu jika diperlukan.

Berikut adalah contoh proses langkah demi langkah untuk membuat tag dari cabang release:

  1. Pastikan Anda berada di cabang release:
$ git checkout release/1.0.0
  1. Selanjutnya, buat tag untuk rilis:
bash
$ git tag -a v1.0.0 -m "Release version 1.0.0"

Ini akan membuat tag teranotasi dengan nama "v1.0.0" dan pesan yang menjelaskan tentang rilis.

  1. Unggah tag ke repositori jarak jauh:
bash
$ git push origin v1.0.0

Ini akan mengunggah tag ke repositori jarak jauh sehingga dapat dilihat oleh pengguna lain.

  1. Pindah ke cabang master:
bash
$ git checkout master
  1. Gabungkan cabang release ke dalam cabang master:
bash
$ git merge release/1.0.0

Ini akan menggabungkan perubahan dari cabang release ke dalam cabang master.

  1. Unggah perubahan ke cabang master jarak jauh:
bash
$ git push origin master

Ini akan mengunggah perubahan ke cabang master jarak jauh, termasuk tag baru.

Praktik Terbaik untuk Git Flow

Untuk memastikan Git Flow diimplementasikan secara efektif, penting untuk mengikuti praktik terbaik. Berikut adalah beberapa praktik terbaik yang perlu diingat:

Konvensi Nama

Konvensi penamaan sangat penting untuk melacak cabang dan memahami tujuannya. Berikut adalah beberapa praktik terbaik untuk konvensi penamaan:

  • Cabang master: Selalu namai dengan master.
  • Cabang develop: Selalu namai dengan develop.
  • Cabang feature: Mulai nama cabang dengan feature/ dan tambahkan nama deskriptif yang mengidentifikasi tujuan cabang.
  • Cabang release: Mulai nama cabang dengan release/ dan tambahkan nomor versi rilis.
  • Cabang hotfix: Mulai nama cabang dengan hotfix/ dan tambahkan nomor versi rilis.

Committing Changes

Committing changes is a crucial part of Git Flow. Here are some best practices for committing changes:

  • Keep commit messages concise and descriptive.
  • Commit early and often.
  • Use a consistent message format that includes the branch name and a brief description of the changes made.
  • Do not commit files that do not belong in the repository, such as build files or configuration files.

Menggabungkan Cabang

Menggabungkan cabang adalah bagian penting dari Git Flow. Berikut adalah beberapa praktik terbaik untuk menggabungkan cabang:

  • Selalu gabungkan ke cabang yang sedang dikerjakan, bukan dari cabang yang sedang dikerjakan.
  • Gunakan perintah merge --no-ff untuk memastikan bahwa commit gabungan dibuat.
  • Selesaikan konflik segera setelah muncul, bukan membiarkannya menumpuk.
  • Teliti perubahan dengan seksama sebelum menggabungkannya ke cabang utama.

Versi

Versi adalah bagian penting dari Git Flow, karena memungkinkan Anda untuk melacak perubahan dan mengidentifikasi status kode sumber. Berikut adalah beberapa praktik terbaik untuk versi:

  • Gunakan penomoran versi semantik untuk memastikan nomor versi menyampaikan makna.
  • Tag rilis dengan nomor versi yang sesuai.
  • Simpan catatan perubahan untuk mendokumentasikan perubahan yang dilakukan pada setiap rilis.
  • Gunakan tag yang dianotasi untuk memberikan informasi lebih lanjut tentang rilis.

Referensi

https://nvie.com/posts/a-successful-git-branching-model/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!