Jaka jest różnica między `git reset file` a` git reset HEAD file`?

9

Uważam, że oba mogą rozpuścić plik.

Kiedyś git reset fileużywałam do rozpakowywania pliku.

Ale dzisiaj, kiedy czytam http://git-scm.com/book .

Uważam, że nauczyło mnie to używania git reset HEAD file, co HEAD tutaj robi? W jakich okolicznościach jest to konieczne?

PS: Dodatkowe pytanie, którego mogę użyć git checkout filedo niemodyfikowania pliku. Tymczasem ta książka sugeruje, żebym użył git checkout -- file. Jaka jest tutaj różnica?

Zen
źródło

Odpowiedzi:

9

Nie ma różnicy. HEADjest całkowicie opcjonalny. HEADzwykle wskazuje na ostatnie zatwierdzenie w bieżącej gałęzi. Jeśli tego nie użyjesz, jest to dorozumiane. Ma to sens tylko wtedy, gdy chcesz zresetować plik na podstawie innej gałęzi lub zatwierdzenia itp. Innymi słowy, sensowne jest użycie czegoś innego niż HEAD.

git checkoutz --jest bezpieczniejszy. Oczywiste jest, że wszystko, co następuje, --jest ścieżką, a nie na przykład zatwierdzeniem lub tagiem.

Miroslav Franc
źródło