Mise à jour 2019:
Depuis Juillet 2019 , il y a eu une nouvelle commande qui fait exactement ceci: git restore
.
Dans git status
, maintenant, Git recommande d'utiliser cette commande au lieu de git checkout
ce qu'il était auparavant.
Bien que cette commande puisse également être utilisée pour restaurer l'arborescence de travail dans une validation spécifique ou pour restaurer le contenu de l'index, par défaut, l'arborescence de travail est restaurée à l'état dans l'index (ce qui est demandé ici).
Donc, afin de restaurer les fichiers correspondant à une pathspec (en se débarrassant de leurs modifications non mises en scène), vous feriez:
git restore <pathspec>
Par exemple, pour restaurer toutes les modifications non mises en scène dans le répertoire en cours, vous pouvez exécuter:
git restore .
Si vous l'exécutez à partir de la racine du projet, il restaurera toutes les modifications non mises en scène dans l'ensemble du référentiel.
Notez que, comme avec git checkout -- .
(comme l'a souligné Mariusz Nowak), cela ne supprimera que les modifications apportées aux fichiers suivis par Git et ne supprimera aucun nouveau fichier non suivi. Si vous souhaitez supprimer toutes les modifications non mises en scène, y compris les nouveaux fichiers non suivis, vous pouvez exécuter un autre:
git clean -df
Soyez très prudent avec cette commande ultérieure, car vous pourriez supprimer les fichiers dont vous n'aviez pas l'intention de vous débarrasser.
Remarque git restore
: comme il s'agit d'une nouvelle commande, sa page de manuel donne un avertissement:
Cette commande est expérimentale. Le comportement peut changer.
Il est donc possible que cette réponse devienne obsolète si le comportement change à l'avenir. Il pourrait donc être judicieux d'exécuter un rapide man git-restore
avant de l'utiliser.
git-clean
supprime uniquement les fichiers non suivis de l'arborescence de travail git-scm.com/docs/git-clean