DEV Community

Muhammad Iqbal
Muhammad Iqbal

Posted on

Menambahkan beberapa perubahan lagi pada *commit*-an git terakhir tanpa membuat *commit*-an baru

Pengantar

Adakalanya kita ingin mengubah atau menambah beberapa baris kode atau hanya sekedar tambahan spasi mungkin dari kode yang sudah kita commit dan sudah terlanjur kita push ke remote. Disini kita ingin melakukan kegiatan tersebut akan tetapi bagaimana caranya kita tanpa membuat commit-an baru yang berbeda agar alur atau history dari commit-an kita tetap terlihat "rapi" dan tertata.

Mari kita mulai

Baik kita mulai sekarang langsung, pada bagian ini saya asumsikan kita bekerja pada branch feature kita sendiri (sebagai contoh) kita mempunyai riwayat commit seperti ini:

be43bz4 feat: penambahan update data master kota
324dsa2 docs: menambah catatan penjelasan
a53da32 chore: update setting environment local
Enter fullscreen mode Exit fullscreen mode

dan pada bagian commit-an be43bz4 kita lupa ada typo misalkan pada kode kita. Apabila kita memperbaikinya dan mencoba membuat commit-an baru mungkin akan terlihat seperti ini:

a2d4ls3 fix: typo title kota
be43bz4 feat: penambahan update data master kota
324dsa2 docs: menambah catatan penjelasan
a53da32 chore: update setting environment local
Enter fullscreen mode Exit fullscreen mode

kita tidak ingin history commit-an git kita seperti itu. Kita ingin tetap pada bagian commit-an be43bz4, dengan mengganti potongan kecil kode tadi. Ya itu mungkin tidak masalah apabila di kasus lain tim kamu ingin menambahkan commit-an baru. Akan tetapi pada kasus ini kita ingin menambahkan potongan kode tersebut pada commit-an terakhir kita tanpa membuat nama commit-an baru. Nah bagaimananya caranya?
kita dapat memanfaatkan fitur amandemen (--amend) pada git.

git bisa melakukannya seperti ini
cukup tambahkan dahulu file yang sudah dimodifikasi:

$ (features/update_city) git add .
Enter fullscreen mode Exit fullscreen mode

dan apabila sudah ditambahkan, kita dapat mengamandemenkan commit-an dengan perintah berikut

$ (features/update_city) git commit --amend
Enter fullscreen mode Exit fullscreen mode

Setelah menjalankan perintah tersebut, akan muncul pada terminal kita kurang lebih seperti ini

# Please enter the commit message for your changes. Lines starting
# with ‘#’ will be ignored, and an empty message aborts the commit.
#
# Author: Iqbal M <iqbal@m.com>
# Date: Sat May 22 21:20:43 2022 -0300
#
# On branch some_branch
# Your branch is up-to-date with ‘origin/features/update_city’.
#
# Changes to be committed:
# modified: city.go
Enter fullscreen mode Exit fullscreen mode

pada bagian ini kita dapat memodifikasi pesan commit-an kita, lakukan sesuai keinginan atau pada kali ini kita tidak mengeditnya lalu langsung menyimpannya tanpa mengubahnya dengan menekan tombol ctrl+x kemudian y

Sekarang perubahan yang kita lakukan pada commit-an terakhir dan setelahnya akan berada di commit yang sama!

Apabila kita ingin mengubah commit-an tanpa harus mengubah pesannya kita dapat menambahkan --no-edit seperti ini

$ (features/update_city) git commit --amend --no-edit
Enter fullscreen mode Exit fullscreen mode

maka kita tidak akan ditampilkan perubahan pesan commit-an.

apabila sudah selesai mengamandemen commit, kita dapat push dengan perintah berikut:

$ (features/update_city) git push -f origin features/update_city
Enter fullscreen mode Exit fullscreen mode

Catatan: push dengan -f perlu kehati-hatian karena dia memaksa push ke origin atau bisa dikatakan force. Maka pastikan terlebih dahulu bahwa kita melakukan push ke origin yang benar

Tambahan juga, Ingat lakukan hal ini hanya pada branch kamu sendiri, JANGAN PERNAH menulis ulang riwayat commit branch public (mis. master). Ini akan mengacaukan kerja rekan tim apabila anda bekerja bersama tim (tidak sendiri).

Semoga membantu dan terima kasih. Semoga berhasil :)

Discussion (0)