Pernah mengalami terlalu banyak commit di project yang menggunakan git, dan ingin menjadi commit tersebut menjadi satu, entah karena ingin rapi, perubah di tiap commiy terlalu kecil atau alasan lainnya. Nah Solusinya bisa dengan squash commit yang akan kita bahas lebih dalam di postingan ini.
Kasus Awal
Untuk memudahkan penjelasan dan pemahaman, disini saya buat contoh kasus, berikut adalah line code dari git commit pertama saya dengan nama "initial file", bisa dicek dengan command git reflog .
Kemudian saya menambahkan line baru, dan commit baru dengan commit message "added thrid row".
Ternyata setelah commit, saya sadar ada typo disana , dan ingin merubah text "ro" menjadi "row". Perbaikan pun beres dan menciptakan commit baru bernama "solving third row", nah 2 commit terakhir inilah yang ingin saya merge menjadi 1 commit "added third row".
Start Squash Commit
Kunci untuk merge disini adakah dengan menggunakan git rebase.
git rebase HEAD~N
N = total commit yang ingin di gabung/merge, perhitungan dimulai dari commit paling atas, dalam kasus ini adalah "solving third row".
Dengan kasus diatas berarti menjadi
git rebase HEAD~2
Yang mana setelah eksekusi command diatas, akan terbuka editor di terminal.
Check 2 row paling atas, defaultnya adalah squash semua, tinggal kita edit saja, ganti squash ke pick, pick disini berarti mengambil commit / commit message untuk dijadikan sebagai commit message setelah merge, dan squash adalah commit yang akan digabungkan. Save dan cek kembali git log kamu.
Beres deh.
Untuk menggabungkan commit case lainnya tanpa git squash bisa dibaca di https://maucoding.com/post/Menggabungkan-Beberapa-Git-Commit-Menjadi-Satu-Case1-614f3c57407b0767d5a32259
- Yussan