J'ai fait quelques travaux dans un dépôt git X, qui a un sous-module Y. J'ai fait quelques changements sur des fichiers dans X, que je veux conserver et j'ai fait un changement dans le sous-module Y que je veux supprimer maintenant. Je souhaite donc annuler toutes les modifications locales que j'ai apportées au sous-module.
J'ai essayé git checkout - ../dep/libY mais rien ne change.
Le statut de Git dit:
modified: ../dep/libY (modified content)
3 Réponses :
Un sous-module est un dépôt Git. Vous pouvez donc cd dans le sous-module, et utiliser git reset --hard pour supprimer le travail effectué dans l'arborescence de travail et l'index de cet autre référentiel Git. (Assurez-vous d'exécuter d'abord git status dans cet arbre de travail, ainsi que d'autres commandes Git, si / comme vous le souhaitez pour vous assurer que tous les fichiers que vous supprimez sont vraiment indésirables.)
Dans votre répertoire extrait, exécutez cette commande qui réinitialisera les fichiers modifiés dans ce sous-répertoire à la révision HEAD (en bref, cela supprimera vos modifications non validées dans ce sous-module / sous-répertoire)
git checkout HEAD -- ../dep/libY
Dans votre cas, la commande serait:
git checkout HEAD -- path/to/submodule
Si vous souhaitez annuler les modifications, sous-module git checkout
git checkout ./
OU
Accédez au dossier (pour lequel vous souhaitez annuler toutes les modifications) et exécuter
git checkout dep/libY
L'exécutez-vous à partir de la racine du répertoire extrait @Darragh?