Git rebase digunakan untuk menggabungkan atau menggeser commit base. Untuk lebih jelas, kita lihat gambar berikut.
- Feature branch dibuat.
- Pada master/main branch ditambahkan commit baru.
- 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