Git Rebase:

Git Rebase:

Katakanlah, Anda memiliki repositori Git dengan komit A,B,C dalam mastercabang. Kemudian, Anda membuat cabang barusomebranch dan menambahkan 2 komitmen baru D dan E ke somebranch cabang.

Fig 1: initial commit history.

Sekarang, katakanlah, Anda lupa menambahkan sesuatu di mastercabang. Jadi, Anda kembali kemaster cabang dan tambahkan komit baru G ke mastercabang. Riwayat git Anda akan terlihat sebagai berikut.

Fig 2: commit history after adding commit G in the master branch.

Semuanya terlihat bagus. Sekarang, jika Anda menginginkan setiap perubahan yang Anda buat padasomebranch cabang berada di master cabang, Anda dapat menggabungkan somebranch cabang ke mastercabang. Inilah yang gitmerge melakukan.

Bagaimana jika Anda ingin komit? G tersedia di somebranchcabang? Nah, Anda bisa menggunakan git rebase untuk itu.

Dari riwayat komit pada gambar 2, Anda dapat melihat bahwa cabang somebranch dimulai dari komit C. Jika Anda melakukan git rebase padasomebranch, maka itu akan dimulai dari komit Gseperti yang ditunjukkan pada gambar 3 di bawah ini. Perhatikan bahwa, isi dari komitD dan Eakan berubah juga setelah operasi rebase. KomitmenD dan E akan mencakup perubahan dalam komit G. Inilah sebabnya saya menambahkan* simbol sebelum melakukan D dan E.

Jika Anda ingin tahu seperti apa riwayat komit jika saya menggabungkannya, lihat gambar 4. Saya telah menyertakannya agar Anda dapa
t membandingkannya dengan git rebase.

Fig 4: commit history if git merge was used.

Sekarang setelah Anda mengetahui apa itu git rebase, perbedaan antara git rebase dan git merge dan mengapa git rebase digunakan, saya akan menunjukkan cara menggunakannya di bagian selanjutnya dari artikel di bawah ini.

Alur Kerja Git Rebase:

Di bagian ini, saya akan membuat repositori git baru di komputer lokal saya dan menunjukkan cara kerja git rebase. Saya sarankan Anda memiliki pemahaman yang baik tentang git rebase sebelum menerapkannya pada proyek Anda.

Pertama, buat repositori Git baru rebase-demo/ di komputer Anda sebagai berikut:

$ git init rebase-demo

Sekarang, navigasikan ke rebase-demo/ direktori sebagai berikut:

$ cd rebase-demo/

Sekarang, buat file baru test.txt sebagai berikut:

$ echo "A" > test.txt

File test.txt hanya berisi satu baris A. Katakanlah, ini adalah kode proyek awal Anda.

Sekarang, komit perubahan sebagai berikut:

$ git add.
$ git commit -m 'A'

Sekarang, tambahkan baris lain B ke test.txt file seperti yang ditunjukkan pada tangkapan layar di bawah ini.

Sekarang, komit perubahan sebagai berikut:

$ git add.
$ git commit -m 'B'

Sekarang, mari tambahkan baris C lain ke test.txt mengajukan.

Juga, komit perubahan sebagai berikut:

$ git add.
$ git commit -m 'C'

Sekarang, riwayat komit dari cabang master akan terlihat sebagai berikut:

$ git log --oneline

Sekarang, katakanlah, Anda memiliki beberapa ide baru yang ingin Anda coba. Jadi, mari kita buat dan checkout ke cabang barunew-feature sebagai berikut:

$ git checkout -b new-feature

Sekarang, tambahkan ide baru Anda (baris D katakanlah) ke test.txt mengajukan.

Sekarang, komit perubahan sebagai berikut:

$ git add.
$ git commit -m 'D'

Sekarang, tambahkan baris E ke test.txt mengajukan.

Lakukan perubahan sebagai berikut:

$ git add.
$ git commit -m 'E'

Sekarang, sejarah komit dari new-feature cabang akan terlihat sebagai berikut:

$ git log --oneline

Lihat bagaimana komit dalam urutan A < B < C < D < E?

Sekarang, Anda ingat bahwa Anda lupa menambahkan sesuatu ke master cabang yang Anda juga ingin berada di new-featurecabang! Jadi, checkout kemaster cabang.

Saya menambahkan baris baru di akhir test.txt file seperti yang Anda lihat.

Sekarang, komit perubahan sebagai berikut:

$ git add.
$ git commit -m 'G'

Sekarang, sejarah komit dari master cabang akan terlihat seperti ini.

A < B < C < G

Sekarang, untuk rebase komit dari master cabang ke new-feature cabang, checkout pertama ke new-feature cabang.

$ git checkout new-feature

Sekarang, lakukan git rebase dari master cabang sebagai berikut:

$ git rebase master

Beberapa menggabungkan konflik! Mari kita perbaiki itu.

Nah, perubahan yang saya buat pada komit G dan Dcopyg bertentangan. Saya ingin menyimpan keduanya.

Setelah memperbaiki konflik penggabungan, test.txt file akan terlihat sebagai berikut:

Sekarang, tambah
kan perubahan ke staging area sebagai berikut:

$ git add.

Sekarang, lanjutkan operasi rebase sebagai berikut:

$ git rebase --continue

Konflik gabungan lainnya! Nah, ini bisa terjadi. Rebase mengubah riwayat komit git. Jadi, hal-hal seperti ini diharapkan.

Tampaknya proses penggabungan gagal karena beberapa baris kosong. Mari kita perbaiki itu.

Setelah memperbaiki konflik penggabungan, test.txt file akan terlihat sebagai berikut.

Sekarang, tambahkan perubahan ke staging area sebagai berikut:

$ git add.

Sekarang, lanjutkan operasi rebase sebagai berikut:

$ git rebase --continue

Git rebase selesai.

Seperti yang Anda lihat, riwayat komit cabang fitur baru diperbarui. Sekarang, riwayat komit adalah sebagai berikut:

A < B < C < G < D < E

Seperti yang diharapkan.

Akhir test.txt file akan terlihat sebagai berikut.

Git rebase adalah alat yang ampuh. Namun, Anda tidak boleh menggunakannya pada repositori Git bersama. Gunakan hanya pada repositori Git tempat Anda bekerja saja. Jika tidak, Anda akan menghadapi banyak masalah di sepanjang jalan.

Jadi, begitulah cara Anda menggunakan git rebase. Terima kasih telah membaca artikel ini.

Related Posts