Menu
CoddyTech

Git: Membatalkan Commit

Terakhir diperbarui

Cara membatalkan commit tergantung commit mana yang dimaksud dan apakah sudah di-push. Commit lama yang terselip di riwayatmu, atau apa pun yang sudah dibagikan, perlu git revert, yang menambahkan commit baru untuk membaliknya tanpa menulis ulang apa pun. Deretan commit lokal terbaru cukup dihapus dengan git reset. Kalau kamu hanya perlu membatalkan commit terbaru, halaman git undo last commit membahas setiap variasi perbaikan cepat itu.

Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.

Dua cara membatalkan commit: git reset memundurkan branch (untuk kerja lokal), git revert menambahkan commit pembalik (aman setelah di-push).

Perintah mana yang dipakai

SituasiPerintah
Batalkan satu commit lama, pertahankan semua commit sesudahnyagit revert <hash>
Batalkan commit yang sudah kamu pushgit revert <hash>
Batalkan 3 commit lokal terakhir, pekerjaan tetap adagit reset --soft HEAD~3
Batalkan 3 commit lokal terakhir, pekerjaan dibuanggit reset --hard HEAD~3
Batalkan sebuah rentang dengan commit kebalikan yang barugit revert HEAD~3..HEAD

reset vs revert

Perilakugit resetgit revert
Menulis ulang riwayatYaTidak
Aman untuk commit yang sudah di-pushTidakYa
Membuat commit baruTidakYa
Bisa untuk commit lama di tengah riwayatTidakYa
Bisa membuang perubahanYa (--hard)Tidak

Contoh langkah demi langkah

Batalkan commit lama tertentu, bahkan yang sudah di-push, tanpa menyentuh commit-commit sesudahnya.

LangkahPerintahHasil
1git log --onelineCari hash commit yang bermasalah (misalnya a1b2c3d)
2git revert a1b2c3dCommit baru membaliknya; commit sesudahnya tidak tersentuh
3git pushBagikan perbaikannya, tanpa ada riwayat yang ditulis ulang

Pertanyaan seputar membatalkan commit

Bagaimana cara membatalkan commit lama tanpa kehilangan commit sesudahnya?
Pakai git revert <hash>. Revert membuat commit baru yang hanya membalik commit yang kamu sebutkan; setiap commit sesudahnya tetap persis seperti semula. Cari hash-nya dulu dengan git log --oneline. Kalau revert bentrok dengan perubahan sesudahnya, Git berhenti sejenak agar kamu bisa menyelesaikannya lalu menjalankan git revert --continue.
Bagaimana cara membatalkan beberapa commit sekaligus?
Untuk commit yang masih lokal, git reset --soft HEAD~3 menghapus tiga commit terakhir sambil membiarkan perubahannya tetap di-stage (pakai --hard untuk membuangnya). Untuk commit yang sudah di-push, lakukan revert pada rentangnya: git revert --no-commit HEAD~3..HEAD membalik ketiganya, lalu satu git commit merekam pembatalannya.
Bagaimana cara membatalkan commit yang sudah di-push?
Pakai git revert <hash>, bukan reset. Revert membuat commit baru yang membatalkan perubahan commit tujuan dan membiarkan riwayat utuh. Inilah cara aman untuk membatalkan commit bersama, karena menulis ulang riwayat yang sudah di-push dengan reset memaksa semua orang lain menyelaraskan salinan mereka.
Kapan sebaiknya memakai reset dan kapan revert?

Pakai reset kalau commit-nya milikmu sendiri dan masih lokal: reset cukup memindahkan branch mundur, seolah commit itu tidak pernah ada. Pakai revert kalau commit-nya sudah di-push, dibagikan, atau berada di tengah riwayat: revert membatalkan perubahannya dengan commit baru yang aman di-pull oleh siapa saja.

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.

Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai