Git Revert
Terakhir diperbarui
git revert membatalkan sebuah commit dengan membuat commit baru yang menerapkan kebalikan dari perubahannya. Karena perintah ini menambah riwayat alih-alih menulis ulang, revert adalah cara aman untuk membatalkan commit yang sudah di-push. Berbeda dengan git reset, revert tidak memaksa semua orang lain menyelaraskan branch yang ditulis ulang.
Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.
Sintaks
| Perintah | Fungsinya |
|---|---|
git revert HEAD | Membatalkan commit terbaru |
git revert <hash> | Membatalkan commit tertentu berdasarkan hash |
git revert HEAD~2..HEAD | Membatalkan rentang commit |
git revert -n <hash> | Revert tapi belum membuat commit (hanya stage) |
git revert -m 1 <merge-hash> | Membatalkan merge commit, mempertahankan parent 1 |
Selama revert berjalan
Kalau revert menemui konflik, selesaikan lalu lanjutkan.
| Perintah | Fungsinya |
|---|---|
git revert --continue | Melanjutkan setelah konflik selesai |
git revert --abort | Membatalkan revert yang sedang berjalan |
git revert --skip | Melewati commit saat ini lalu lanjut |
revert vs reset
| Perilaku | git revert | git reset |
|---|---|---|
| Menulis ulang riwayat | Tidak | Ya |
| Aman untuk commit yang sudah di-push | Ya | Tidak |
| Membuat commit baru | Ya | Tidak |
| Membatalkan commit di tengah riwayat | Ya | Merepotkan |
Pertanyaan seputar git revert
Apa bedanya git revert dan git reset?
git revert menambahkan commit baru yang membatalkan perubahan dari commit sebelumnya dan membiarkan riwayat utuh, aman untuk commit yang sudah kamu push. git reset memindahkan penunjuk branch mundur dan menulis ulang riwayat, tidak masalah untuk commit lokal tapi berbahaya di branch bersama. Pakai revert untuk membatalkan commit publik, reset untuk commit lokal.Bagaimana cara revert commit yang sudah di-push?
git revert <hash> (atau git revert HEAD untuk yang terbaru), lalu push commit revert yang baru. Karena revert tidak menulis ulang riwayat, ini cara yang benar untuk membatalkan commit bersama: tanpa force push dan tanpa mengganggu rekan tim yang sudah mengambilnya lewat pull.Bagaimana cara revert merge commit?
git revert -m 1 <merge-hash>, dengan -m 1 yang memberi tahu Git untuk mempertahankan parent pertama (biasanya branch tujuan merge). Revert pada merge membatalkan perubahan hasil merge tapi tetap menyimpan merge itu di riwayat.Bisakah revert beberapa commit sekaligus?
git revert HEAD~2..HEAD untuk membatalkan dua commit terakhir, atau sebutkan beberapa hash. Secara default Git membuat satu commit revert untuk setiap commit yang dibatalkan; tambahkan -n untuk memasukkan semua pembatalan ke staging tanpa commit, lalu buat satu commit sendiri.Bisakah saya berlatih ini secara online?
git revert di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara membatalkan perubahan langkah demi langkah.