
Mesin Waktu yang Berbeda Cara Kerja
Setiap *developer* pasti pernah panik karena tidak sengaja melakukan git commit pada kode yang rusak atau berisi *password* *database* (*Hardcoded credentials*). Saat ingin memutar balik waktu, Git memberikan dua alat utama: Git Reset dan Git Revert. Memilih alat yang salah di situasi yang salah bisa membawa malapetaka bagi tim.
1. Git Reset: Menghapus Jejak Sejarah
Perintah git reset ibarat mesin waktu yang kembali ke masa lalu dan mengubah jalan cerita sehingga kejadian salah itu tidak pernah ada.
- Cara Kerja: Jika kamu berada di *Commit* C (yang salah), dan melakukan
git resetke *Commit* B, maka *Commit* C akan benar-benar terhapus dan lenyap dari sejarah log Git-mu. - Aturan Mutlak: Gunakan
git resetHANYA JIKA *commit* tersebut BELUM DI-PUSH ke GitHub/GitLab (masih diam di laptop lokalmu). - Bahaya: Jika kamu me-reset *commit* yang sudah ada di *branch* publik (yang mungkin sudah di-pull oleh teman kerjamu), lalu kamu memaksanya dengan
git push -f, Git milik temanmu akan berantakan karena riwayat yang mereka pegang tiba-tiba musnah dari *server*.
2. Git Revert: Menambah Sejarah Permintaan Maaf
Perintah git revert adalah cara orang dewasa dan profesional untuk memperbaiki kesalahan di ranah publik.
- Cara Kerja: Alih-alih menghapus sejarah,
git revertakan membaca *Commit* C (yang salah), membalikkan logika kodenya (misal: kode yang tadi ditambah akan dihapus, yang dihapus akan ditambah), lalu Menciptakan Commit Baru (Commit D) di barisan paling depan. - Sejarah Transparan: Riwayat Git-mu akan terlihat jujur:
Commit B (Kerja normal) → Commit C (Error masuk) → Commit D (Revert: Membatalkan fitur Error). - Aturan Mutlak: Gunakan
git revertSELALU jika kode yang bermasalah tersebut SUDAH BERADA DI SERVER PUBLIK (SUDAH DI-PUSH). Ini 100% aman karena tidak mengubah masa lalu, melainkan menambah masa depan baru. Teman tim-mu bisa melakukangit pulldengan aman dan damai.
Ringkasan Tindakan Darurat
Skenario A (Masih di Laptop):
"Aduh, aku baru pencet `git commit` tapi lupa menghapus `console.log()` di satu file!"
Solusi: Gunakan git reset --soft HEAD~1. *Commit* dibatalkan, file-filemu dikembalikan ke status *Staged*, hapus log-nya, lalu *commit* ulang dengan rapi.
Skenario B (Sudah Terbang ke Internet):
"Gawat, fitur pembayaran yang aku `git push` tadi pagi ternyata bikin layar putih di Production!"
Solusi: Segera ketik git revert , lalu git push. Fitur rusak itu akan terhapus otomatis di Production tanpa merusak riwayat kerja 10 *developer* lainnya yang sedang aktif.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates