2017-03-14 4 views
1

Nous savons que, lorsque nous changeons de branche, le contenu de l'index est réinitialisé à la validation référencée par la branche vers laquelle nous venons de passer. (git checkout branch_name)L'index devient-il vide ou correspond-il aux fichiers suivis du commit nouvellement pointé, après une réinitialisation difficile?

Mais, que sur cette commande?

git reset HEAD ~ 1 --hard

Certes, il annule l'engagement en cours, se déplace à la précédente validation, et ne conserve pas le courant commettras Travaillons arbre et index. Mais, fait-il l'index vide ou remplit-il l'index avec l'information des dossiers suivis dans un vieux commis que nous avons déplacé, comme dans le cas de "git checkout branch_name"?

Répondre

2

It-git reset, avec les options appropriées: remplit l'index de la validation à laquelle vous êtes réinitialisé.

Git fait cette confusion en raison de l'orthographe --allow-empty et --keep-empty drapeaux (git commit, git rebase et similaires): ceux-ci font sonner comme l'indice est vide, alors que l'indice correspond simplement à la validation. C'est le diff qui est vide.

Notez que git reset réinitialise l'index (pour correspondre à la validation) avec à la fois --hard et la valeur par défaut --mixed. L'utilisation de --soft supprime la réinitialisation d'index.