Git: Membatalkan Commit Terakhir
Terakhir diperbarui
Untuk membatalkan commit terbaru, tentukan dulu apa yang terjadi pada perubahannya. Biarkan tetap di-stage dengan git reset --soft HEAD~1, biarkan tidak di-stage dengan git reset HEAD~1 biasa, atau buang dengan git reset --hard HEAD~1. Kalau commit-nya hanya sedikit keliru, git commit --amend memperbaikinya di tempat. Kalau sudah di-push, pakai git revert, bukan menulis ulang riwayat. Untuk membatalkan commit yang lebih lama atau beberapa commit sekaligus, lihat halaman git undo commit.
Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.
Tentukan nasib perubahannya
| Tujuan | Perintah |
|---|---|
| Batalkan commit, perubahan tetap di-stage | git reset --soft HEAD~1 |
| Batalkan commit, perubahan tidak di-stage | git reset HEAD~1 |
| Batalkan commit, perubahan dibuang | git reset --hard HEAD~1 |
| Perbaiki commit terakhir (pesan atau file) | git commit --amend |
| Batalkan commit yang sudah kamu push | git revert HEAD |
Contoh langkah demi langkah
Batalkan commit terakhir lalu commit ulang dengan pesan yang lebih baik.
| Langkah | Perintah | Hasil |
|---|---|---|
| 1 | git reset --soft HEAD~1 | Commit dihapus, perubahan tetap di-stage |
| 2 | git commit -m "clearer message" | Commit ulang perubahan yang sama |
Pertanyaan seputar membatalkan commit terakhir
Bagaimana cara membatalkan commit terakhir tapi tetap menyimpan perubahannya?
git reset --soft HEAD~1. Perintah ini menghapus commit terakhir tapi membiarkan perubahannya tetap di-stage, jadi kamu bisa langsung commit ulang. Kalau kamu ingin perubahannya berada di working tree tanpa di-stage, pakai git reset HEAD~1 (mode default).Bagaimana cara membatalkan commit terakhir sekaligus menghapus perubahannya?
git reset --hard HEAD~1. Perintah ini menghapus commit dan membuang perubahannya dari working tree. Sifatnya merusak: kalau kamu mungkin masih butuh pekerjaan itu, pakai --soft, atau pulihkan nanti lewat git reflog.Bagaimana kalau hanya pesan commit yang perlu diperbaiki?
git commit --amend. Perintah ini membuka lagi commit terakhir supaya kamu bisa mengedit pesannya (dan stage ulang file kalau perlu) tanpa membuat commit terpisah. Hindari amend pada commit yang sudah kamu push, karena ini menulis ulang riwayat.Bagaimana cara membatalkan commit terakhir setelah di-push?
git revert HEAD. Revert membuat commit baru yang membalik commit terakhir dan membiarkan riwayat utuh, pilihan yang aman untuk branch bersama. Melakukan reset pada commit yang sudah di-push memaksa semua orang lain menyelaraskan branch yang ditulis ulang.Bisakah saya berlatih ini secara online?
Bisa. Buka playground terminal untuk menjalankan perintah-perintah ini di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara membatalkan perubahan langkah demi langkah.