Menyelamatkan Commit dengan reflog

Pulih dari kesalahan reset --hard atau branch terhapus memakai catatan reflog.

Part 21 dari 22 ± 25 menit Gratis

"Saya menghapus pekerjaan saya!"

Setiap pengguna Git pernah menjalankan git reset --hard ke commit yang salah, atau menghapus branch yang belum digabung, lalu panik karena commit tampaknya lenyap dari git log. Kabar baik: hampir selalu commit itu masih ada. Git menyimpan catatan ke mana HEAD pernah menunjuk: reflog.

Membaca reflog

git reflog

e064cf4 HEAD@{0}: reset: moving to HEAD~2
1af2065 HEAD@{1}: commit: Tambah fitur penting
e064cf4 HEAD@{2}: commit: Commit dua
5767e11 HEAD@{3}: commit (initial): Commit satu

Setiap baris = satu perpindahan HEAD (commit, checkout, merge, reset, rebase...). HEAD@{1} artinya "tempat HEAD berada satu langkah yang lalu".

Di contoh, commit Tambah fitur penting (1af2065) hilang dari git log karena reset, tetapi tertulis jelas di reflog.

Memulihkan

git reset --hard HEAD@{1}       # kembalikan branch ke posisi sebelum reset
# atau, lebih hati-hati: simpan di branch baru tanpa menyentuh yang sekarang
git branch pulih 1af2065
git switch pulih

Memulihkan branch yang terhapus

git branch -D fitur-lama        # oops
git reflog                      # cari commit terakhir branch itu
git branch fitur-lama a1b2c3d   # buat ulang di commit tersebut

Batasan reflog

  • Bersifat lokal: tidak ikut di-push; hanya ada di komputer tempat kejadian.
  • Entri kedaluwarsa (default sekitar 90 hari untuk yang dapat dijangkau, 30 hari untuk yang tidak) lalu dibersihkan oleh garbage collection.
  • Hanya menyelamatkan yang pernah di-commit. Perubahan yang tidak pernah di-add/commit (mis. dibuang oleh git restore) tidak bisa dipulihkan.

Tips

  • git reflog show main menampilkan riwayat khusus branch main.
  • Referensi waktu: HEAD@{yesterday}, main@{2.hours.ago}.
  • Sebelum operasi berisiko (rebase besar, reset --hard), buat branch cadangan: git branch cadangan.

Pelajaran terbesar

Git sangat memaafkan: selama sesuatu pernah di-commit, hampir selalu ada jalan kembali. Itu alasan terbaik untuk sering commit.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X