Quelle est la différence entre `git reset file` et` git reset HEAD file`?

9

Je trouve que ces deux éléments peuvent libérer un fichier.

J'avais l'habitude d'utiliser git reset filepour décortiquer un fichier.

Mais aujourd'hui, quand j'ai lu le http://git-scm.com/book .

Je trouve que cela m'a appris à utiliser git reset HEAD file, que fait la tête ici? Dans quelles circonstances c'est un must?

PS: Une question supplémentaire que je peux utiliser git checkout filepour modifier un fichier. En attendant ce livre me propose de l'utiliser git checkout -- file. Quelle est la différence ici?

Zen
la source

Réponses:

9

Il n'y a aucune différence. HEADest entièrement facultatif. HEADpointe normalement sur le dernier commit de la branche courante. Si vous ne l'utilisez pas, c'est implicite. Cela n'a de sens que si vous souhaitez réinitialiser le fichier en fonction d'une branche ou d'une validation différente, etc. En d'autres termes, il est logique d'utiliser autre chose que HEAD.

git checkoutavec --est plus sûr. Il est clair que ce qui suit --est un chemin et non un commit ou un tag par exemple.

Miroslav Franc
la source