Menu
CoddyTech

Git Reset --hard

Terakhir diperbarui

git reset --hard memindahkan branch-mu ke commit tujuan dan memaksa staging area serta working tree sama persis dengan commit itu, sambil membuang setiap perubahan yang belum di-commit. Ini bentuk git reset yang paling merusak, jadi pastikan kamu tidak membutuhkan pekerjaanmu saat ini sebelum menjalankannya.

Tidak sengaja kehilangan commit karena reset? Hard reset biasanya masih bisa dipulihkan lewat git reflog. Coba perintah-perintah ini dengan aman di playground terminal: shell sungguhan di browsermu.

git reset --hard memindahkan HEAD mundur dan membuang semua yang ada sesudahnya, termasuk staging area dan working tree.

Sintaks

PerintahFungsinya
git reset --hardMembuang semua perubahan yang belum di-commit (tetap di HEAD)
git reset --hard HEAD~1Membuang commit terakhir beserta perubahannya
git reset --hard <hash>Memaksa branch kembali ke commit tertentu
git reset --hard origin/mainMembuat branch lokal sama persis dengan remote

Memulihkan hard reset

Pekerjaan yang sudah di-commit lalu terhapus oleh reset biasanya masih bisa dipulihkan.

LangkahPerintahHasil
1git reflogMenampilkan posisi HEAD sebelumnya, lengkap dengan hash
2git reset --hard <hash>Kembali ke commit sebelum reset

Pertanyaan seputar git reset --hard

Apa sebenarnya yang dilakukan git reset --hard?
Perintah ini memindahkan branch saat ini ke commit tujuan dan menimpa staging area serta working tree agar sama dengan commit itu. Semua perubahan yang belum di-commit, baik yang sudah di-stage maupun belum, dibuang. Dibandingkan --soft (yang membiarkan perubahan tetap di-stage) dan --mixed (yang membiarkannya tidak di-stage), --hard adalah satu-satunya mode yang membuang perubahan.
Bagaimana cara membuang semua perubahan lokal?
Jalankan git reset --hard tanpa commit untuk mengembalikan working tree ke commit terakhir dan menghapus editan yang belum di-commit. Untuk juga membersihkan file untracked yang tidak disentuh reset, lanjutkan dengan git clean -fd.
Bagaimana cara reset branch agar sama dengan remote?
Jalankan git fetch lalu git reset --hard origin/main (ganti dengan branch-mu). Ini memaksa branch lokalmu sama persis dengan remote, membuang commit dan perubahan lokal yang menyimpang darinya. Berguna saat branch lokalmu sudah kacau dan kamu hanya ingin versi dari remote.
Bisakah git reset --hard dibatalkan?
Untuk pekerjaan yang sudah di-commit, biasanya bisa: jalankan git reflog untuk menemukan commit yang ditunjuk branch-mu sebelum reset, lalu git reset --hard <hash> untuk kembali ke sana. Perubahan yang belum pernah di-commit (hanya ada di working tree) tidak bisa dipulihkan, jadi gunakan --hard dengan hati-hati.
Bisakah saya berlatih ini secara online?
Bisa. Buka playground terminal untuk menjalankan git reset --hard di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas reset dan cara membatalkan perubahan langkah demi langkah.
Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai