Lewati ke konten utama

Git Undo Last Commit: Panduan Langkah demi Langkah untuk Pemula

Panduan ini mengajarkan cara membatalkan commit Git terakhir Anda dengan aman menggunakan perintah dan alat yang tepat, baik bekerja sendiri maupun dalam tim.
Diperbarui 16 Apr 2026  · 10 mnt baca

Jika Anda pernah mengerjakan proyek pengkodean bersama, Anda tahu betapa cepatnya keadaan bisa berantakan saat mencoba membatalkan perubahan. Satu langkah yang salah, pekerjaan Anda bisa hilang, atau lebih buruk lagi: merusak sesuatu yang baru saja didorong oleh rekan tim Anda.

Itulah mengapa sangat penting untuk memahami apa saja yang ditawarkan Git untuk membatalkan kesalahan, dan kapan menggunakan masing-masing opsi. Beberapa perintah aman untuk lingkungan tim, sementara yang lain lebih cocok untuk pembersihan lokal waktu Anda tidak masalah menulis ulang riwayat.

Panduan ini akan memandu Anda melalui semuanya. Anda akan mempelajari berbagai cara membatalkan commit, bagaimana cara kerjanya, dan mana yang sebaiknya digunakan tergantung situasi.

Memahami Riwayat Commit Git 

Pernah menekan 'Ctrl+S' untuk menyimpan versi dokumen dan kembali lagi nanti? Itulah yang dilakukan commit Git, tetapi untuk seluruh basis kode Anda.

Apa itu commit di Git?

Sebuah git commit adalah cuplikan proyek Anda pada titik waktu tertentu. Commit membekukan keadaan saat ini dari semua file Anda dan memberikan ID unik untuk versi tersebut, seperti mengambil foto kode Anda dengan penanda waktu. Anda selalu bisa kembali ke titik itu jika sesuatu rusak di kemudian hari.

Bagaimana cara kerjanya? Saat Anda memodifikasi file di repo, perubahan tersebut tidak langsung disimpan. Sebaliknya, perubahan itu ada secara lokal di direktori kerja saat ini. Untuk menyimpannya, perubahan tersebut di-stage lalu di-commit ke repositori. Riwayat commit Anda adalah log dari semua commit yang dilakukan pada repositori. 

Commit lokal vs remote

Commit lokal tetap berada di mesin Anda dan tidak terlihat oleh rekan atau kolaborator hingga Anda memutuskan untuk membagikannya. Artinya, Anda punya lebih banyak kendali: Anda dapat menulis ulang riwayat, menggabungkan (squash), menghapus, atau me-reset tanpa memengaruhi orang lain.

Sebaliknya, commit remote dapat diakses oleh semua orang yang bekerja pada repositori. Itu berarti Anda tidak boleh menulis ulang atau menghapus commit tersebut. Melakukannya akan merusak pekerjaan rekan tim Anda jika mereka menggunakan branch remote yang sama. Jadi berhati-hatilah dan pahami apa yang Anda lakukan sebelum menulis ulang riwayat bersama. 

Membatalkan Commit Git Terakhir Secara Lokal

Di Git, HEAD menunjuk ke commit terbaru dalam riwayat proyek Anda. Saat Anda menggunakan perintah git reset, Anda memberi tahu Git untuk memindahkan pointer itu ke commit lain. 

Mari kita uraikan cara menggunakan git reset untuk membatalkan commit terakhir dalam berbagai skenario.

Menggunakan git reset --soft HEAD~1

Ini memindahkan HEAD mundur satu commit tetapi membiarkan perubahan Anda tetap di area staging. File Anda tidak tersentuh, dan semua yang Anda commit masih antre di area staging. Gunakan ini ketika Anda ingin membatalkan commit-nya saja, tetapi tetap menyimpan semua perubahan yang sudah disiapkan dan di-stage.

Menggunakan git reset --mixed HEAD~1

Yang ini melangkah lebih jauh. Ia juga memindahkan HEAD mundur satu commit tetapi membersihkan area staging. File Anda tetap berada di direktori kerja, tetapi tidak ada lagi yang di-stage. Ini adalah mode bawaan dari git reset.

Menggunakan git reset --head HEAD~1

Ini memindahkan HEAD mundur, membersihkan area staging, dan menghapus perubahan di direktori kerja Anda. Rasanya seperti commit terakhir (beserta semua perubahannya) tidak pernah ada.

Gunakan dengan hati-hati — setelah perubahan itu hilang, akan sulit untuk mengembalikannya. Jadi, jalankan hanya jika Anda benar-benar yakin tidak membutuhkan apa pun dari commit terakhir itu.

Contoh 1: Membatalkan commit terakhir secara lokal (perbaikan aman)

Misalnya Anda baru saja membuat commit, tetapi menyadari lupa memperbarui file README.

Skenario:

Anda melakukan commit perubahan pada main.py, tetapi lupa memperbarui README.md. Anda ingin mengubah commit terakhir tanpa memengaruhi siapa pun, dan Anda belum mendorong apa pun.

Solusi:

Gunakan git reset --soft HEAD~1 untuk membatalkan commit dan mempertahankan perubahan tetap di-stage:

git reset --soft HEAD~1

Sekarang, perbarui file README Anda, tambahkan ke stage, lalu commit ulang semuanya:

git add README.md
git commit -m "Update main.py and README.md"

✅ Mengapa ini berhasil: Karena commit belum didorong, Anda bisa menulis ulang riwayat lokal tanpa memengaruhi siapa pun.

Membatalkan Commit Git yang Sudah Didorong

Jadi Anda sudah mendorong sebuah commit... dan sekarang menyesal. Kita semua pernah mengalaminya. Tetapi bagaimana cara membatalkannya tanpa merusak pekerjaan rekan satu tim? 

Biasanya, Git hanya mengizinkan Anda mendorong jika branch lokal Anda baru saja di-pull dan mutakhir dengan branch remote. Namun, Anda bisa menimpa aturan ini menggunakan perintah super seperti push --force. Perintah ini menimpa seluruh riwayat remote dengan apa pun yang ada di branch lokal Anda.

Itulah mengapa --force kuat namun berbahaya. Dalam pengaturan tim, perintah ini bisa menghapus commit rekan Anda jika commit mereka belum di-pull ke branch lokal Anda. Gunakan hanya ketika Anda benar-benar tahu apa yang Anda lakukan — dan idealnya, saat Anda bekerja sendiri pada repo tersebut.

Selain push --force, ada juga pull --force, perintah kuat lain yang harus digunakan dengan hati-hati. Pelajari selengkapnya di sini.

Alternatif yang lebih aman dengan git revert

Jika Anda ingin membatalkan commit tanpa menghapus riwayat, git revert adalah pilihan terbaik. Perintah ini tidak menghapus commit; melainkan membuat commit baru yang membalikkan perubahan.

Misalnya Anda melakukan commit pada file bernama streamlit_app.py, dan Anda ingin menyingkirkannya. git revert akan menghasilkan commit baru yang menghapus hanya file itu, sambil membiarkan riwayat lainnya tetap utuh.

Secara default, git revert menargetkan commit terbaru. Namun, Anda juga bisa membatalkan commit yang lebih lama dengan menentukan ID commit-nya.

Contoh 2: Membatalkan commit yang sudah didorong secara aman pada branch bersama

Misalnya Anda mendorong perubahan konfigurasi yang rusak dan perlu membalikkannya tanpa menghapus riwayat.

Skenario:

Anda mendorong commit yang menambahkan baris bermasalah di config.yaml. Tim Anda sudah bekerja pada branch remote yang sama (main), jadi Anda tidak bisa menggunakan reset atau force-push.

Solusi:

Gunakan git revert untuk membatalkan commit dengan aman:

git revert <commit-hash>

Ini akan membuka editor teks untuk mengonfirmasi pesan revert. Simpan dan tutup editor untuk membuat commit baru yang membatalkan commit sebelumnya.

Jika commit terakhir yang ingin dibatalkan:

git revert HEAD

Lalu dorong perubahannya:

git push origin main

✅ Mengapa ini berhasil: git revert tidak menulis ulang riwayat — tetapi menambahkan commit baru. Ini membuatnya aman untuk branch bersama dan alur kerja tim.

Memvisualisasikan dan Mengonfirmasi Perubahan

Terkadang, Anda hanya ingin melihat apa saja yang sudah terjadi — seperti menggulir kembali ke versi sebelumnya untuk menemukan commit yang ingin Anda batalkan. Git memberi Anda alat untuk melakukan hal itu.

Menggunakan git log untuk memeriksa riwayat commit 

Jalankan git log di terminal, dan Anda akan mendapatkan daftar lengkap semua commit pada branch saat ini. Anda bisa menggunakannya untuk mengidentifikasi commit tertentu yang ingin dibatalkan atau diubah. 

Sebagai contoh: keluaran git log mungkin terlihat seperti:

  • e3a1b7f Perbaiki salah ketik di README  
  • 4f2c9a1 Tambahkan validasi login  
  • 9d5b3e8 Commit awal  

Setiap baris menampilkan hash commit dan pesan. Jika Anda ingin membatalkan perubahan tertentu, cukup salin hash commit tersebut dan gunakan dengan git revert

Menggunakan alat GUI atau ekstensi

Jika Anda bukan pengembang atau belum pernah bekerja dengan kontrol versi, semua instruksi baris perintah itu bisa terasa seperti bahasa asing. Di sinilah alat GUI berperan. Alat-alat ini membuat Git menjadi visual dan ramah pemula, sehingga Anda bisa fokus pada hal yang penting tanpa harus menghafal perintah.

GitHub Desktop 

GitHub Desktop adalah aplikasi gratis yang menyediakan antarmuka sederhana dan mudah untuk bekerja dengan repositori GitHub Anda. Setelah diinstal, Anda dapat menggunakannya untuk membuat branch, melakukan commit, mendorong ke remote, dan mengelola proyek — semuanya dengan klik alih-alih perintah Git.

Aplikasi ini sempurna jika Anda baru mengenal Git atau hanya menginginkan pengalaman yang lebih mulus saat mengelola perubahan.

Antarmuka pengguna GitHub Desktop

Antarmuka pengguna GitHub Desktop. Sumber gambar

Sourcetree

Sourcetree adalah alat GUI Git gratis untuk Mac dan Windows. Alat ini memberi cara visual untuk mengelola branch, commit, dan merge tanpa menyentuh terminal. Ringan, ramah pemula, dan bekerja baik dengan platform populer seperti GitHub, GitLab, dan Bitbucket. 

Karena dibuat oleh Atlassian, alat ini juga terintegrasi baik dengan alat Atlassian lain seperti Jira, Confluence, dan Bamboo, menjadikannya pilihan tepat jika tim Anda sudah menggunakan ekosistem tersebut.

Antarmuka pengguna Sourcetree

Antarmuka pengguna Sourcetree. Sumber gambar

GitKraken

GitKraken adalah GUI Git kaya fitur yang membuat bekerja dengan repositori terasa mulus dan visual. Sorotan utamanya adalah tampilan grafik — linimasa interaktif dan berwarna dari riwayat repo Anda yang membuat branch, merge, dan commit mudah diikuti.

Di sebelah kiri, Anda akan melihat pohon file proyek. Di sebelah kanan, Anda akan mendapatkan info terperinci tentang commit, file, atau branch yang Anda klik. Intuitif, ramah pemula, dan juga penuh fitur canggih untuk pengguna tingkat lanjut.

GitKraken gratis untuk penggunaan pribadi, tetapi jika Anda bekerja di lingkungan perusahaan atau mengelola repo privat, Anda memerlukan paket berbayar.

Antarmuka pengguna Gitkraken

Antarmuka pengguna Gitkraken. Sumber gambar.

Praktik Terbaik untuk Membatalkan Commit Git

Membatalkan commit bukanlah sesuatu yang perlu ditakuti selama Anda mengikuti praktik yang baik. Mari kita bahas apa saja.

Gunakan branch untuk eksperimen

Kapan pun Anda membangun sesuatu yang baru atau memperbaiki bug, buat branch terpisah dari main. Lakukan semua pekerjaan di sana, uji secara menyeluruh, lalu gabungkan kembali ke branch main.

Dengan cara ini, kesalahan atau rollback apa pun tetap aman di branch Anda tanpa mengacaukan pekerjaan tim lainnya.

Saat ragu, gunakan git revert

Misalnya Anda membuat beberapa commit di branch lokal dan tanpa sengaja mendorongnya ke branch main. Waduh. Sekarang Anda ingin membatalkan salah satu commit tersebut tanpa mengacaukan riwayat bersama. Di sinilah git revert menyelamatkan keadaan.

Jalankan git revert HEAD~1. Ini membuat commit baru yang membalikkan perubahan dari commit kedua terakhir (karena HEAD~1 menunjuk ke sana). Ini tidak menghapus apa pun, melainkan membalikkan perubahan dengan cara yang bersih dan dapat dilacak.

Setelah selesai, jangan lupa mendorong perbaikannya ke remote menggunakan git push origin <your-branch-name>.

Catatan: Jika perubahan sudah didorong ke branch bersama, gunakan git revert. Perintah ini menjaga riwayat commit tetap utuh dan tidak akan mengganggu rekan satu tim Anda.

Dokumentasikan perubahan Anda

Anda tidak perlu membuka halaman Confluence hanya untuk mempertahankan riwayat versi karena Git sudah melakukannya untuk Anda. Kuncinya adalah menggunakannya dengan cerdas.

Mulailah dengan pesan commit yang jelas dan bermakna. Jika Anda melakukan revert, pastikan pesannya menjelaskan mengapa Anda membatalkannya. 

Dan catat ID commit serta ringkasan singkat tentang apa yang berubah. Biasanya itu sudah cukup untuk tujuan dokumentasi.

Berkolaborasi dalam tim 

Saat Anda menggunakan perintah seperti git reset, rebase, atau commit --amend pada branch yang juga digunakan orang lain, Anda mengubah riwayat commit. Siapa pun yang telah menarik (pull) riwayat lama sekarang akan menghadapi konflik. 

Jadi, gunakan perintah penulisan ulang hanya pada branch lokal atau fitur. Jika Anda harus melakukan force-push atau menulis ulang riwayat bersama, komunikasikan hal ini kepada tim sedini mungkin. 

Kesimpulan 

Git memberi Anda berbagai cara untuk membatalkan kesalahan; namun mengetahui kapan dan bagaimana menggunakan setiap alat adalah yang membedakan pengembang yang percaya diri dari yang kebingungan.

Kita telah menjelajahi cara kerja git reset dalam berbagai mode, kapan menggunakan git revert, dan mengapa penting memilih alat yang tepat berdasarkan situasi Anda.

Singkatnya:

  • Hindari menulis ulang riwayat setelah mendorong ke branch bersama
  • Komunikasikan sejak awal jika Anda harus melakukan force-push
  • Gunakan git revert untuk membatalkan commit yang sudah didorong dengan aman

Untuk langkah selanjutnya, pelajari cara Anda dapat membatalkan merge commit di sini. Jika Anda sudah menuntaskan dasar-dasarnya dan siap melangkah lebih jauh, lihat kursus Git tingkat menengah kami

FAQs

Apa sebenarnya yang dilakukan git reset --soft HEAD~1?

Perintah ini memindahkan pointer HEAD Anda mundur satu commit tetapi membiarkan semua perubahan tetap di-stage. Sempurna saat Anda ingin merevisi commit tanpa kehilangan pekerjaan apa pun.

Kapan saya harus menggunakan git reset --mixed alih-alih --soft?

Gunakan --mixed saat Anda ingin mempertahankan perubahan file tetapi menghapusnya dari area staging. Ini berguna untuk melakukan penyuntingan sebelum melakukan commit ulang.

Apakah berbahaya menggunakan git push --force?

Ya, terutama dalam lingkungan tim. Ini menulis ulang riwayat commit pada branch remote dan dapat menghapus pekerjaan rekan jika tidak digunakan dengan hati-hati.

Apa perbedaan antara git revert dan git reset?

git revert menambahkan commit baru yang membatalkan perubahan tanpa menyentuh riwayat, sedangkan git reset memindahkan HEAD dan dapat mengubah riwayat — sangat berisiko jika sudah didorong.

Bisakah saya membatalkan commit tanpa kehilangan perubahan saya?

Ya, gunakan git reset --soft untuk menjaga perubahan tetap di-stage atau --mixed untuk mempertahankannya di direktori kerja.

Apa cara paling aman untuk membatalkan commit di repo bersama?

Gunakan git revert. Ini mempertahankan riwayat dengan membuat commit baru yang membalikkan perubahan, sehingga menghindari konflik dengan rekan tim.

Bagaimana cara menemukan commit yang ingin saya batalkan?

Gunakan git log untuk menampilkan daftar commit sebelumnya. Salin hash commit yang ingin Anda revert atau reset.

Apakah alat GUI seperti GitHub Desktop bisa melakukan revert commit?

Ya, alat GUI menyediakan cara yang ramah pengguna untuk membatalkan commit tanpa perlu mengingat sintaks baris perintah. Ideal untuk pemula.

Apa yang terjadi pada riwayat commit setelah reset?

Dengan git reset, commit akan dihapus dari riwayat Anda — kecuali sudah didorong. Dalam kasus itu, remote masih memiliki catatannya kecuali Anda melakukan force-push.

Apakah boleh mengamend commit setelah mendorong?

Tidak, tidak tanpa koordinasi. Mengamend lalu melakukan force-push dapat mengganggu pekerjaan bersama. Lakukan hanya di branch terisolasi atau proyek solo.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.

Topik

Pelajari lebih lanjut tentang Git dengan kursus-kursus ini!

Kursus

Pengantar Git

2 Hr
70.8K
Pelajari dasar-dasar Git untuk version control dalam proyek perangkat lunak dan data Anda.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

12 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat Lebih BanyakLihat Lebih Banyak