Git Rebase dan Branch Beralih

Rebase

Rebase adalah proses mengubah riwayat komit suatu cabang dengan menerapkan komit dari cabang lain. Alih-alih menggunakan merge untuk menggabungkan perubahan, rebase memungkinkan Anda insert melakukan komit baru ke dalam riwayat komit cabang saat ini tanpa membuat komit gabungan.

Misalnya, katakanlah Anda memiliki dua cabang: feature-branch dan main. Anda sedang mengerjakan feature-branch dan ingin menerapkan komit terbaru dari main ke cabang Anda saat ini. Anda dapat menggunakan rebase untuk mencapai ini:

git checkout feature-branch  
git rebase main  

Saat Anda menjalankan perintah ini, Git akan mengambil komit dari main dan menerapkannya ke feature-branch. Ini berarti bahwa semua komit pada feature-branch akan muncul setelah komit dari main. Hasilnya adalah riwayat komit yang lebih bersih dan lebih mudah dibaca di feature-branch.

Namun, saat menggunakan rebase, penting untuk diperhatikan bahwa perubahan riwayat komit dapat berdampak pada cabang yang dibagikan secara publik. Oleh karena itu, jika Anda telah mendorong komit dari cabang Anda saat ini ke repositori jarak jauh, umumnya disarankan untuk tidak menggunakan rebase pada cabang tersebut untuk menghindari konflik dan riwayat komit yang berantakan.

 

Branch Beralih

Perpindahan cabang di Git mengacu pada proses perpindahan dari satu cabang ke cabang lainnya. Saat Anda berpindah cabang, Git memindahkan pointer HEAD ke cabang baru, memungkinkan Anda bekerja di cabang itu dan membuat perubahan tanpa memengaruhi cabang lain.

Misalnya, katakanlah Anda memiliki cabang feature-branch dan main. Untuk beralih ke feature-branch, Anda akan menggunakan perintah berikut:

git checkout feature-branch

Setelah berpindah cabang, Anda dapat membuat perubahan di direktori kerja. Semua commit, add, dan checkout perintah akan diterapkan ke cabang saat ini.

Misalnya, jika Anda menambahkan file baru dan mengkomitnya pada feature-branch, hanya cabang tersebut yang akan memuat komit, sementara main tetap tidak terpengaruh. Ini memungkinkan Anda mengembangkan fitur terpisah, memperbaiki bug, atau mengerjakan versi kode yang berbeda secara mandiri. Anda dapat beralih antar cabang kapan pun diperlukan untuk mengerjakan setiap cabang secara terpisah.