Git Rebase
Terakhir diperbarui
git rebase memindahkan commit di branch-mu supaya dijalankan ulang di atas branch lain, menghasilkan riwayat yang lurus, bukan merge commit. Rebase interaktif (-i) bisa lebih jauh lagi: kamu bisa melakukan squash, mengubah urutan, mengedit, atau membuang commit. Karena rebase menulis ulang commit, lakukan hanya pada pekerjaan yang belum kamu bagikan.
Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.
Sintaks
| Perintah | Fungsinya |
|---|---|
git rebase main | Menjalankan ulang commit-mu di atas main |
git rebase -i HEAD~3 | Mengedit 3 commit terakhir secara interaktif |
git rebase --onto main old new | Memindahkan rentang commit ke atas main |
git rebase --continue | Melanjutkan setelah konflik selesai |
git rebase --abort | Membatalkan rebase, mengembalikan branch |
git pull --rebase | Pull lalu rebase, bukan merge |
Kata kunci rebase interaktif
Di editor yang dibuka oleh -i, ganti pick dengan salah satu kata kunci ini.
| Kata kunci | Fungsinya |
|---|---|
pick | Mempertahankan commit |
reword | Mempertahankan commit, mengedit pesannya |
squash | Melebur ke commit sebelumnya, menggabungkan pesannya |
fixup | Melebur ke commit sebelumnya, membuang pesan ini |
drop | Menghapus commit sepenuhnya |
Pertanyaan seputar git rebase
Apa fungsi git rebase?
Perintah ini mengambil commit di branch saat ini dan menjalankannya ulang satu per satu di atas branch lain, seolah-olah kamu memulai pekerjaanmu dari commit terbaru branch itu. Hasilnya riwayat yang lurus tanpa merge commit. Dalam prosesnya, commit-commit itu ditulis ulang (mendapat hash baru).
Apa itu rebase interaktif?
git rebase -i <base> membuka editor berisi daftar commit sejak <base>, tempat kamu bisa mengubah urutannya, menggabungkan beberapa commit menjadi satu dengan squash, mengubah pesan dengan reword, mengedit commit dengan edit, atau membuangnya dengan drop. Inilah alat utama untuk merapikan rangkaian commit yang berantakan sebelum dibagikan.Apa aturan emas rebase?
Bagaimana cara memperbaiki atau membatalkan rebase yang konflik?
git add pada file itu, lalu jalankan git rebase --continue. Pakai git rebase --skip untuk membuang commit saat ini, atau git rebase --abort untuk membatalkan sepenuhnya dan mengembalikan branch seperti sebelum rebase dimulai.Bisakah saya berlatih ini secara online?
git rebase di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas rebase langkah demi langkah.