🚀 Git Rebase: Cara Kerja, Perbedaan dengan Merge, dan Studi Kasus Nyata

Agung Dirgantara
By -
0

Git adalah alat version control yang sangat kuat, tapi juga sering membingungkan—terutama saat masuk ke konsep rebase. Banyak developer bisa commit dan merge, tapi belum benar-benar paham kapan dan bagaimana menggunakan rebase dengan benar.

Artikel ini membahas Git rebase dari konsep sampai studi kasus nyata.


🧠 Apa itu Git Rebase?

Git rebase adalah proses memindahkan atau “memutar ulang” commit dari satu branch ke branch lain.

Secara sederhana:

Rebase = menulis ulang history commit agar terlihat linear (rapi)


📌 Perbandingan sederhana

Merge:

Menggabungkan dua branch dengan membuat commit baru.

A---B---C (main)
     \    
      D---E (feature)
           \
            M (merge commit)

Rebase:

Memindahkan commit feature ke atas main.

A---B---C---D'---E' (feature rebased)

👉 Tidak ada merge commit 👉 History jadi linear (rapi)


⚖️ Rebase vs Merge

Aspek Merge Rebase
History Non-linear Linear
Commit tambahan Ada merge commit Tidak ada
Risiko Rendah Bisa rewrite history
Cocok untuk Tim besar Feature branch lokal

🧪 Studi Kasus 1: Update feature dari main terbaru

Situasi

Kamu sedang kerja di branch:

feature/login

Sementara main sudah update:

main: A --- B --- C --- D
feature: A --- B --- E --- F

❌ Masalah

Kalau kamu langsung merge:

  • history jadi bercabang
  • banyak merge commit tidak penting

✅ Solusi dengan rebase

git checkout feature/login
git rebase main

Hasil:

A --- B --- C --- D --- E' --- F'

👉 Feature kamu seolah dibuat setelah update terbaru main


💡 Keuntungan

  • history bersih
  • lebih mudah dibaca reviewer
  • tidak ada merge commit tambahan

🧪 Studi Kasus 2: Membersihkan commit sebelum push ke production

Situasi

Kamu punya commit di feature:

fix typo
fix bug login
improve login logic
add login feature

Ini buruk untuk production history.


❌ Masalah

  • terlalu banyak commit kecil
  • tidak meaningful
  • sulit tracking

✅ Solusi: interactive rebase

git rebase -i HEAD~4

Akan muncul:

pick a1 add login feature
pick b2 improve login logic
pick c3 fix bug login
pick d4 fix typo

Ubah menjadi:

pick a1 add login feature
squash b2 improve login logic
squash c3 fix bug login
squash d4 fix typo

🎯 Hasil

add login feature (clean commit)

🧪 Studi Kasus 3: Menyelesaikan conflict saat rebase

Situasi

Dua branch mengubah file yang sama:

main:  edit config A
feature: edit config A (versi lain)

Saat rebase

git rebase main

Conflict muncul.


Cara resolve

git status

Edit file:

<<<<<< HEAD
version main
======
version feature
>>>>>> feature

Pilih salah satu:

final version

Lalu:

git add .
git rebase --continue

🧪 Studi Kasus 4: Rewrite history sebelum merge ke main

Situasi real production

Kamu punya branch:

feature/payment

History:

WIP commit
debug payment
fix again
final version

Tujuan

Sebelum merge ke main:

  • history harus clean
  • hanya 1 commit

Solusi

git rebase -i main

Squash semua commit → 1 commit:

feat: implement payment feature

⚠️ Hal penting saat pakai rebase

❌ Jangan rebase branch yang sudah di-push dan dipakai orang lain

Karena rebase:

  • mengubah commit hash
  • bisa membuat konflik besar di tim

✅ Aman digunakan di:

  • feature branch pribadi
  • local branch sebelum push
  • cleanup history sebelum PR

🧠 Kapan pakai rebase?

Gunakan rebase jika:

  • ingin history rapi
  • update feature dari main terbaru
  • cleanup commit sebelum PR

Gunakan merge jika:

  • branch sudah dipakai banyak orang
  • ingin history tetap asli
  • workflow tim besar

🚀 Kesimpulan

Git rebase bukan sekadar command, tapi:

Cara untuk membuat history Git lebih bersih, linear, dan mudah dibaca.


🔥 3 hal yang harus kamu ingat:

  1. Rebase = rewrite history
  2. Merge = preserve history
  3. Interactive rebase = alat cleanup commit

Posting Komentar

0Komentar

Posting Komentar (0)