Mungkin kalian berfikir, apa bedanya Git Merge dan Git Rebase? Kan sama sama memberikan perubahan pada branch tujuan??!. Ya! keduanya memang melakukan perubahan pada branch tujuan. Secara logika, hal tersebut memang sama saja, tapi secara Teknis hal tersebut memiliki perbedaan.
Git Merge melakukan penambahan commit/history ke branch tujuan. Sedangkan Git Rebase melakukan replacing commit/history pada branch tujuan.
Karena alasan di ataslah, Git rebase tidak di anjurkan di gunakan untuk repository publik atau repository team yang banyak developer berperan di dalamnya. Karena akan menggantikan history yang telah dibuat oleh developer lain di branch tujuan.
Jadi keduanya ini perbedaannya ada di sistem history dan commitnya.
Kita buat permisalan:
Andy mempunyai 2 branch yaitu "main" sebagai upstream/branch utama dan "master" sebagai branch modifier. Maksud dari branch modifier disini adalah branch yang mempunyai potongan kode dari upstream branch dan branch yang dilakukan perubahan kode di dalamnya hingga akhirnya perubahan tersebut akan di aplikasikan ke upstream branch.
Kondisi 1:
Andy ingin menambahkan fitur dari modifier branch tanpa menghilangkan/me-replace perubahan history commit yang ada di upstream branch: Andy menggunakan Git Merge
Kondisi 2:
Andy ingin menambahkan fitur dari modifier branch tetapi juga ingin menghilangkan/mereplace perubahan history commit yang ada di upstream branch: Andy menggunakan Git Rebase