web-dev-qa-db-fra.com

Annuler “git add <dir>”?

J'ai ajouté par erreur des fichiers en utilisant la commande "git add dir". Je n'ai pas encore lancé "git commit". Existe-t-il un moyen de supprimer ce répertoire et tout ce qu'il contient du commit?

J'ai essayé git reset dir, mais ça n'a pas marché. Apparemment git reset file est le moyen de le défaire. Mais j'ai tellement de fichiers et si peu de temps.

163
neoneye

Pour supprimer un répertoire et tout ce qu'il contient de l'index,

git rm --cached -r dir

Le --cached le commutateur fait git rm n'opère que sur l'index et ne touche pas la copie de travail. Le -r _ switch le rend récursif.

254

Vous voudrez utiliser git rm --cached -r <dir>. cette commande supprimera le contenu du répertoire intermédiaire de l'index.

si le répertoire a déjà été suivi, vous devez rechercher manuellement les nouveaux et les anciens fichiers et les désarchiver…

Probablement exécuté git reset <dir> après cela pour réinitialiser les fichiers existants (et déjà suivis) dans le répertoire.


Mise à jour 2019:

Il suffit de lancer git reset directory _, cela déchaînera tous les fichiers récemment ajoutés.

15
knittl

Utilisez find et xargs :

find dir -type f | xargs git reset
11
marcog
$ git reset <dir>

Décompose tous les fichiers et dossiers avec lesquels j'ai mis en scène:

$ git add <dir>

Ce qui précède a été confirmé avec:

$ git status

ou

$ git diff --staged --name-only 

après la commande git add afin de confirmer les fichiers et les dossiers qui étaient des "modifications à valider".

Après avoir exécuté la commande git reset, j'ai utilisé:

$git diff --staged --name-only

pour vous assurer qu'aucun des dossiers ou fichiers précédemment mis en place n'a encore été mis en place.

6
mrduncle1