Apa perbedaan antara `git reset file` dan` git reset HEAD file`?

9

Saya menemukan kedua hal ini dapat menghapus stage file.

Dulu saya gunakan git reset fileuntuk unstage file.

Tapi hari ini ketika saya membaca http://git-scm.com/book .

Saya merasa itu mengajarkan saya untuk menggunakan git reset HEAD file, apa yang dilakukan KEPALA di sini? Dalam keadaan apa itu suatu keharusan?

PS: Pertanyaan tambahan, saya bisa gunakan git checkout fileuntuk tidak mengubah file. Sementara itu buku ini menyarankan saya untuk menggunakannya git checkout -- file. Apa bedanya di sini?

Zen
sumber

Jawaban:

9

Tidak ada perbedaan. HEADsepenuhnya opsional. HEADbiasanya menunjuk ke komit terakhir dari cabang saat ini. Jika Anda tidak menggunakannya, itu tersirat. Masuk akal hanya jika Anda ingin mengatur ulang file berdasarkan beberapa cabang atau komit dll. Dengan kata lain, masuk akal untuk menggunakan sesuatu yang lain daripada HEAD.

git checkoutdengan --lebih aman. Jelas bahwa apa pun yang mengikuti --adalah jalur dan bukan komit atau tag misalnya.

Miroslav Franc
sumber