Diskusi Abdul Mukhit

Selesai
Abdul Mukhit
Ditanyakan pada: Kembali ke Commit Sebelumnya dengan Git Reset

git reset --hard (hash commit/kode commit) vs git restore -S file.js

halo kak saya masih bingung mengenai git reset --hard dan git restore -S file.js . untuk git restore -S ini kan katanya dari staging ke working directory ya? yang berarti belum di commit ya? sedangkan untuk git reset --hard (hash commit) itu mengembalikan ke commit yang sebelumnya? misal dari commit 5 ke commit 4 dan apakah commit 5 ini akan hilang? mohon pencerahannya kak

2 Jawaban

Avatar
Muhammad Fakhry Burhanuddin

2 bulan yang lalu

Jawaban Terpilih

Iya betul. Perintah git restore akan membatalkan perintah git add atau memindahkan status file dari staging ke working directory. Ada yang bilang file dipindahkan dari pohon (tree) "Staging" ke pohon "Working directory".

Perintah git reset --hard akan membatalkan semua perubahan yang kita lakukan di tree "Staging" dan "Working directory"

Untuk mencobanya silahkan lakukan latihan berikut.

  • Edit satu file dan tambahkan ke Staging dengan perintah git add file1.txt
  • Edit file yang lain tapi tidak usah tambahkan ke Staging.
  • Lihat status dengan git status. Nanti muncul 2 status yaitu file yang "modified" dan file siap untuk dicommit.
  • Lakukan git reset hard dengan perintah git reset --hard
  • Cek lagi dengan git status dan lihat perubahannya.
Avatar
BroKoding

2 bulan yang lalu

Halo kak, perbedaan antara keduanya adalah perintah git reset --hard mengembalikan HEAD dan direktori kerja ke keadaan commit tertentu, menghapus perubahan yang belum dicommit. Sementara itu, git restore mengembalikan perubahan di direktori kerja ke keadaan yang sesuai dengan commit terbaru, tanpa mengubah HEAD.