Comment rétablir les modifications non validées, y compris les fichiers et les dossiers?

Existe-t-il une commande git pour annuler toutes les modifications non validées dans un arbre de travail et un index et pour supprimer également les fichiers et dossiers nouvellement créés?

Vous pouvez exécuter ces deux commandes:

# Revert changes to modified files. git reset --hard # Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`) git clean -fd 

Si vous souhaitez annuler les modifications uniquement dans le répertoire de travail actuel, utilisez

 git checkout -- . 

Et avant cela, vous pouvez lister les fichiers qui seront restaurés sans faire aucune action, juste pour vérifier ce qui va se passer, avec:

 git checkout -- 

Utilisez “git checkout – …” pour ignorer les modifications dans le répertoire de travail

 git checkout -- app/views/posts/index.html.erb 

ou

 git checkout -- * 

supprime toutes les modifications apscopes aux fichiers non stockés dans l’état git, par exemple

 modified: app/controllers/posts.rb modified: app/views/posts/index.html.erb 

Une manière non sortingviale consiste à exécuter ces deux commandes:

  1. Cela va déplacer vos changements dans la réserve, vous ramenant à l’état de la tête
  2. git stash drop Cela supprime le dernier stash créé dans la dernière commande.
 git clean -fd 

n’a pas aidé, de nouveaux fichiers sont restés. Ce que j’ai fait est de supprimer complètement tout l’arbre de travail et ensuite

 git reset --hard 

Voir ” Comment effacer mon répertoire de travail local dans git? ” Pour des conseils pour append l’option -x pour nettoyer:

 git clean -fdx 

Remarque -x flag supprimera tous les fichiers ignorés par Git, alors faites attention (voir la discussion dans la réponse à laquelle je fais référence).

Je pense que vous pouvez utiliser la commande suivante: git reset --hard

S’il vous plaît noter qu’il peut encore y avoir des fichiers qui ne semblent pas disparaître – ils peuvent être non modifiés, mais git peut les avoir marqué comme étant modifiés en raison de modifications CRLF / LF. Voyez si vous avez récemment apporté des modifications à .gitatsortingbutes .

Dans mon cas, j’ai ajouté les parameters CRLF dans le fichier .gitatsortingbutes et tous les fichiers sont restés dans la liste des “fichiers modifiés” à cause de cela. La modification des parameters .gitatsortingbutes les a fait disparaître.

Un chemin sûr et long:

  1. git branch todelete
  2. git checkout todelete
  3. git add .
  4. git commit -m "I did a bad thing, sorry"
  5. git checkout develop
  6. git branch -D todelete

J’utilise généralement cette manière qui fonctionne bien:

 mv fold/file /tmp git checkout fold/file 

Utilisation:

 git reset HEAD filepath 

Par exemple:

 git reset HEAD om211/src/META-INF/persistence.xml