Menu
CoddyTech

Git Reflog

Terakhir diperbarui

git reflog mencatat setiap tempat yang pernah ditunjuk HEAD: setiap commit, checkout, reset, dan rebase. Karena Git menyimpan commit-commit itu untuk sementara waktu bahkan setelah tidak lagi ada di branch mana pun, reflog adalah jaring pengamanmu: dengan reflog kamu bisa menemukan dan memulihkan pekerjaan yang seolah hilang akibat reset --hard, rebase yang keliru, atau branch yang terhapus.

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

git reflog mencatat setiap posisi yang pernah ditempati HEAD, jadi commit yang hilang karena reset atau rebase bisa ditemukan dan dipulihkan.

Sintaks

PerintahFungsinya
git reflogMenampilkan posisi HEAD terakhir, lengkap dengan hash
git reflog show <branch>Menampilkan reflog sebuah branch
git reset --hard HEAD@{1}Memindahkan HEAD kembali ke posisi sebelumnya
git branch recovered <hash>Membuat ulang branch di commit yang hilang

Pulih dari kesalahan

Batalkan reset yang keliru dengan menemukan commit sebelum reset.

LangkahPerintahHasil
1git reflogTemukan commit sebelum reset
2git reset --hard HEAD@{1}Kembalikan branch-mu ke sana

Pertanyaan seputar git reflog

Apa itu git reflog?
Reflog adalah log semua tempat yang pernah ditunjuk HEAD (dan ujung setiap branch) di repositori lokalmu, setelah commit, checkout, reset, merge, dan rebase. Berbeda dengan git log yang mengikuti garis keturunan commit, reflog adalah catatan kronologis dari tindakanmu, dan itulah yang membuatnya berguna untuk pemulihan.
Bagaimana cara memulihkan commit setelah git reset --hard?
Jalankan git reflog untuk menemukan entri commit tempat kamu berada sebelum reset (misalnya HEAD@{1}), lalu git reset --hard <that-hash> (atau HEAD@{1}) untuk kembali ke sana. Commit itu sebenarnya tidak terhapus; hanya saja tidak ada branch yang menunjuknya, dan reflog masih tahu hash-nya.
Bagaimana cara mengembalikan branch yang terhapus?
Cari commit terakhir branch itu di git reflog, lalu buat ulang branch di sana: git branch <name> <hash>. Selama penghapusannya belum lama (masih dalam batas kedaluwarsa reflog Git, biasanya beberapa minggu), commit-commit itu masih bisa dijangkau dengan cara ini.
Apakah git reflog berlaku di semua clone?

Tidak. Reflog bersifat lokal di repositorimu dan tidak ikut di-push atau di-clone. Reflog hanya mencatat tindakan di komputermu. Itulah sebabnya reflog bisa menyelamatkan kesalahan lokal tapi tidak bisa memulihkan sesuatu yang hanya pernah ada di clone lain.

Bisakah saya berlatih ini secara online?
Bisa. Buka playground terminal untuk menjalankan git reflog di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara membatalkan perubahan dan memulihkannya langkah demi langkah.
Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai