Blogger Jateng

Teknik Percabangan Git Tingkat Lanjut

Git adalah sistem kontrol versi yang kuat yang memungkinkan pengembang mengelola basis kode secara efisien. Meskipun banyak pengembang yang tahu cara menggunakan perintah seperti git branch, git checkout, dan git merge, teknik percabangan tingkat lanjut dapat sangat membantu produktivitas dan kolaborasi dalam proyek-proyek yang kompleks. Artikel ini memperkenalkan beberapa teknik tingkat lanjut dan kasus penggunaannya.

1. Memahami Alur Git

Git Flow -Ini adalah model percabangan umum yang menciptakan alur kerja yang terorganisir untuk fitur baru, rilis, dan perbaikan terbaru. Model ini menggunakan jenis-jenis cabang:

  • Master: Kode siap produksi.
  • Develop: Cabang integrasi untuk semua fitur.
  • Fitur: Gunakan dengan bercabang dari develop untuk mengerjakan fitur baru.
  • Rilis: Menyimpang dari develop untuk menyiapkan bukti rilis produksi.
  • Perbaikan: Cabang yang dibuat dari master untuk menyelesaikan masalah kritis.

Model Git Flow menstandarkan pengembangan, membuatnya lebih mudah untuk mengelola banyak kontributor dan merampingkan proses penyebaran. Alat bantu seperti git-flow dapat mengotomatiskan alur kerja ini.

sumber: rackh.com

2. Pengubahan ulang vs Penggabungan

Ketika bekerja dengan cabang-cabang fitur, para pengembang sering kali bergumul antara melakukan rebasing dan penggabungan. Kedua metode ini digunakan untuk mengintegrasikan perubahan dari satu cabang ke cabang lainnya, tetapi berbeda dalam beberapa aspek:

  • Penggabungan: Menggabungkan cabang hanya membuat komit baru yang menggabungkan riwayat. Ini mempertahankan riwayat penuh (dan tidak merusak).
  • Memutar ulang (rebasing): Memutar ulang komit dari satu cabang ke cabang lainnya, menciptakan riwayat linier. Ini memang menyederhanakan log komit, tetapi ini menulis ulang riwayat dan dapat menjadi masalah jika Anda tidak berhati-hati.

Rebasing sangat ideal untuk menjaga agar cabang fitur tetap mutakhir dengan cabang utama, sementara penggabungan lebih baik untuk melestarikan sejarah lengkap dari pekerjaan kolaboratif.

3. Cherry-Picking

Cherry-picking memungkinkan pengembang untuk menerapkan komit tertentu dari satu cabang ke cabang lainnya. Hal ini berguna ketika Anda perlu menerapkan perbaikan bug atau fitur yang dikembangkan di satu cabang ke cabang yang berbeda tanpa menggabungkan seluruh cabang.

Sebagai contoh:

git checkout target-branch
git cherry-pick <commit-hash>

Cherry-picking harus digunakan dengan hati-hati, karena dapat membuat duplikasi komit dan mempersulit pelacakan riwayat.

4. Menggunakan Cabang Topik

Cabang-cabang yang berumur pendek ini disebut cabang topik. Cabang topik digunakan untuk mengerjakan implementasi tugas tertentu (seperti fitur, atau bug). Hal ini mempermudah pengelolaan pull request dan tinjauan kode, meningkatkan kolaborasi dengan mengisolasi pekerjaan.

Contoh Alur Kerja:

1. Anda harus membuat cabang baru untuk tugas Anda:

git checkout -b feature/task-name

2. Dorong cabang tersebut ke repositori jarak jauh:

git push origin feature/task-name

3. Isi pull Request untuk menggabungkan cabang Anda ke dalam develop atau main.

Cabang-cabang topik harus dihapus setelah penggabungan untuk menjaga repositori tetap bersih.

5. Cara Menggunakan Stash untuk Percabangan:

Perintah git stash digunakan untuk menyimpan perubahan yang dibuat pada direktori kerja dan area pementasan Anda untuk sementara waktu tanpa melakukan komit. Perintah ini berguna jika kamu ingin berpindah cabang atau jika kamu belum siap untuk mengkomit pekerjaanmu.

Contoh Penggunaan:

1. Simpan perubahan Anda:

git stash

2. Atau gunakan cabang lain dan kembangkan di sana.

3. Gunakan perubahan yang tersimpan nanti:

git stash apply

Perintah manajemen simpanan seperti daftar simpanan git dan penurunan simpanan git membantu Anda mengelola perubahan yang disimpan secara efisien.

6. Perlindungan Cabang Tingkat Lanjut

Aturan perlindungan cabang membantu menegakkan standar dan menghindari penimpaan cabang yang penting secara tidak sengaja. Sebagai contoh, Anda dapat

  • Mengaktifkan tinjauan permintaan penarikan yang diperlukan sebelum penggabungan
  • Mewajibkan beberapa pemeriksaan, seperti tes kelulusan atau linting.
  • Membatasi siapa yang dapat mendorong langsung ke cabang

Aturan-aturan ini memastikan integritas kode dan mengurangi kemungkinan kesalahan dalam produksi. 

7. Mengotomatiskan Manajemen Cabang dengan Hooks

Git hook adalah skrip khusus yang berjalan pada berbagai tahap alur kerja Git. Untuk percabangan, hook seperti pre-commit atau pre-push dapat menerapkan konvensi penamaan cabang, mencegah komit ke cabang yang diproteksi, atau menjalankan pengujian otomatis.

Contoh kait pra-komit:

#!/bin/sh

branch=$(git rev-parse --abbrev-ref HEAD)

if [ "$branch" = "main" ]; then

  echo "Direct commits to main are not allowed."

  exit 1

fi

Simpan skrip ini di .git/hooks/pre-commit dan buatlah skrip ini dapat dieksekusi untuk memberlakukan aturan.

Kesimpulan

Menguasai teknik percabangan Git tingkat lanjut dapat secara signifikan meningkatkan kolaborasi tim, merampingkan alur kerja, dan memastikan kualitas kode. Baik Anda mengelola proyek besar dengan Git Flow atau sekadar menyempurnakan alur kerja pribadi Anda dengan cabang topik dan penyimpanan, alat dan strategi ini memberdayakan Anda untuk memanfaatkan sepenuhnya kemampuan Git. Mulailah bereksperimen dengan teknik-teknik ini untuk meningkatkan proses pengembangan Anda hari ini! 

Kembali ke>>>> Memahami Percabangan dan Penggabungan di Git