Rebase vs Merge, pada Git

sumber: Gambar 1


“Rebase vs Merge” adalah salah satu topik yang sering dibahas dalam dunia Git. Kalau Anda pernah mencari pembahasannya di internet, kemungkinan besar Anda akan menemukan perdebatan panjang yang ujung-ujungnya saling menyalahkan.

Lucunya, masalahnya sering kali bukan pada Git. Masalahnya ada pada cara kita memahami dan menggunakan rebase. Sebelumnya saya juga salah paham, namun sekarang benar paham. 😁

Bahkan developer ahli pun tidak sedikit yang menggunakan git rebase tanpa benar-benar memahami tujuannya. Ketika terjadi kekacauan history commit, rebase yang disalahkan. Padahal, itu murni skill issue.


Memahami Rebase dengan Cara Sederhana

Bayangkan kita punya struktur commit seperti ini:

A - B - C    main
  \
    D - E    feature_branch

Kita sedang bekerja di feature_branch. Sementara itu, tim lain sudah menambahkan commit baru di main sampai ke commit C. Artinya, branch kita sudah mulai ketinggalan.

Ada dua cara umum untuk menarik perubahan dari main:

  1. Merge
  2. Rebase

Kalau kita memilih merge, Git akan membuat merge commit baru. Ini sah-sah saja, tapi histori akan menjadi bercabang dan kadang sulit dibaca. Rebase mengambil pendekatan berbeda.


Apa yang Dilakukan Rebase?

Rebase bekerja dengan cara memindahkan commit kita ke atas commit terbaru di main.

Setelah rebase, histori akan berubah menjadi seperti ini:

A - B - C         main
         \
          D - E   feature_branch

Yang terjadi sebenarnya bukan memindahkan commit, melainkan memutar ulang (replay) commit D dan E di atas C.

Hasil akhirnya:

  • Tidak ada merge commit
  • History commit menjadi linear
  • Lebih bersih dan mudah dibaca


Kapan Harus Rebase dan Kapan Harus Merge?

Rebase dan merge bukan musuh. Keduanya hanyalah alat dengan fungsi berbeda.

Merge

  • Menjaga histori asli proyek
  • Menunjukkan kapan dan di mana branch digabung
  • Cocok untuk histori kolaborasi

Rebase

  • Membuat histori linear
  • Lebih mudah dibaca
  • Ideal untuk branch pribadi

Banyak tim membebaskan developer menggunakan rebase di branch masing-masing, tetapi membatasi penggunaannya di branch utama.


Catatan: Jangan pernah melakukan rebase pada branch publik seperti main. Branch publik digunakan oleh banyak orang, dan mengubah histori commit-nya dapat menimbulkan masalah serius bagi rekan satu tim. Rebase aman dilakukan pada branch pribadi, termasuk untuk melakukan rebase ke main, melakukan rebase berulang kali, atau merapikan commit sebelum proses merge.

Comments

Popular posts from this blog

Belajar Zimbra Mail Server

Mendalami tentang Linux (Sejarah dan Pelopor)