En utilisant git, comment réinitialiser l’arborescence de travail à l’état de l’index?

Situation:

  1. Modifier des fichiers
  2. Ajouter des fichiers à l’index
  3. Modifier plus de fichiers

Nous avons maintenant trois états différents. L’état de HEAD, l’état de l’index et l’état de l’arbre de travail. Quelle est la commande pour annuler les modifications dans l’arborescence de travail afin qu’elle corresponde à l’état de l’index?

J’ai tendance à utiliser git checkout . qui élimine toutes les modifications du répertoire de travail. Cela fait une différence si vous n’êtes pas à la racine du référentiel.

Cette commande ne supprime pas les fichiers nouvellement créés, ce qui est généralement une bonne chose. Si vous devez le faire, vous pouvez également utiliser git clean .

Vous pouvez utiliser git stash save --keep-index pour ce faire. Après avoir sauvegardé le cache, vous pouvez utiliser git stash drop si vous ne souhaitez pas le conserver.

Vous pouvez utiliser git-checkout-index . Sachez que vous devez append

  • -f pour le forcer à écraser les fichiers existants, ou
  • -f -a pour forcer le remplacement de tous les chemins dans l’index.

git checkout :/ ignore toutes les modifications de l’arborescence de travail et les remplace par celles de l’index, quel que soit le répertoire de travail en cours.

https://git-scm.com/docs/gitglossary#gitglossary-aiddefpathspecapathspec