Git Rebase

Git rebase digunakan untuk menggabungkan atau menggeser commit base. Untuk lebih jelas, kita lihat gambar berikut.

  1. Feature branch dibuat.
  2. Pada master/main branch ditambahkan commit baru.
  3. Proses git rebase untuk menggeser commit base.

Masih melanjutkan dari project modul sebelumnya, agar lebih sederhana, mari kita hapus dulu beberapa commit pada main/master branch. Gunakan perintah git reset ke commit id cd46806.

$ git log --oneline    
a4878d0 (HEAD -> main) Merge branch 'fitur01'
abc4f6d change p color to blue
98e2a0b change p color to yellow
b8e1e75 Merge branch 'fitur01'
b2987ac Add paragraph index.html
fb045ba add paragraph styling
377b8a0 add h1 styling
40e966b (origin/fitur01) Add paragraph fitur01
39cb8a7 (origin/main) Add header
cd46806 (fitur01) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar

$ git reset --hard cd46806
HEAD is now at cd46806 add aboutus.html

$ git log --oneline
cd46806 (HEAD -> main, fitur01) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar

Agar kondisi file sama, kita hapus branch fitur01, jika diperiksa status commit terakhir adalah seperti berikut:

$ git branch -D fitur01
$ git log --oneline
cd46806 (HEAD -> main) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasa

Mari kita buat lagi branch baru, misalnya branch dev01.

$ git branch dev01
$ git checkout dev01
Switched to branch 'dev01'

$ git log --oneline
cd46806 (HEAD -> dev01, main) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar

Kembali ke main branch, lalu kita buat perubahan dan commit.

$ git checkout main
$ git commit -am "add h1 on index.html"
[main 279d250] add h1 on index.html
 1 file changed, 1 insertion(+), 1 deletion(-)

$ git log --oneline
279d250 (HEAD -> main) add h1 on index.html
cd46806 (dev01) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar

Pindah ke branch dev01, lalu kita periksa commit history

$ git checkout dev01
Switched to branch 'dev01'

$ git log --oneline
cd46806 (HEAD -> dev01) add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar

Dapat dilihat commit base sudah bergeser. Untuk menyamakan commit base, gunakan perintah git rebase nama_branch_master. JIka kita periksa sekarang commit base sudah sama. Pointer head menunjuk ke branch dev01 dan main.

$ git rebase main
Successfully rebased and updated refs/heads/dev01.

$ git log --oneline
279d250 (HEAD -> dev01, main) add h1 on index.html
cd46806 add aboutus.html
045e189 Add .gitignore
36878f7 layout dasar
Sharing is caring:

Leave a Comment