Question Suppression de plusieurs fichiers d'un dépôt Git qui ont déjà été supprimés du disque


J'ai un rapport Git que j'ai supprimé quatre fichiers d'utiliser rm (ne pas  git rm), et mon statut Git ressemble à ceci:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

Comment puis-je supprimer ces fichiers de Git sans devoir passer manuellement et ajouter chaque fichier comme ceci:

git rm file1 file2 file3 file4

Idéalement, je cherche quelque chose qui fonctionne de la même manière que git add . fait, si c'est possible.


1227
2018-01-29 17:18


origine


Réponses:


Pour Git 1.x

$ git add -u

Cela indique à git d'organiser automatiquement les fichiers suivis, y compris la suppression des fichiers précédemment suivis.

Pour Git 2.0

Pour mettre en scène tout votre arbre de travail:

$ git add -u :/

Pour mettre en scène uniquement le chemin actuel:

$ git add -u .

2205
2017-09-10 00:13



git ls-files --deleted -z | xargs -0 git rm 

pourrait être ce que vous cherchez .. ça marche pour moi ..


1335
2018-02-28 20:21



Vous pouvez utiliser

git add -u

Pour ajouter les fichiers supprimés à la zone de transfert, puis les valider

git commit -m "Deleted files manually"

725
2018-01-29 17:25



Si vous exécutez simplement:

git add -u

git mettra à jour son index pour savoir que les fichiers que vous avez supprimés doivent en fait faire partie du prochain commit. Ensuite, vous pouvez exécuter "git commit" pour vérifier ce changement.

Ou, si vous exécutez:

git commit -a

Il prendra automatiquement ces changements (et tous les autres) et les commettra.

Mettre à jour: Si vous souhaitez uniquement ajouter des fichiers supprimés, essayez:

git ls-files --deleted -z | xargs -0 git rm
git commit

354
2017-09-10 00:15



Vous recherchez probablement -A:

git add -A

Ceci est similaire à git add -u, mais ajoute aussi de nouveaux fichiers. C'est à peu près l'équivalent de hg addremove commande (bien que la détection de mouvement soit automatique).


163
2018-01-29 18:10



Jouer seulement le supprimé des dossiers:

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

Ou (la façon xargs):

git status | awk '/deleted/ {print $2}' | xargs git rm

Vous pouvez alias votre ensemble de commandes préféré pour une utilisation ultérieure pratique.


92
2017-11-26 10:34



git rm test.txt

Avant ou après avoir supprimé le fichier réel.


59
2017-09-10 00:13



En utilisant git-add avec les options '--all' ou '--update', vous pouvez obtenir plus que ce que vous vouliez. Les fichiers nouveaux et / ou modifiés seront également ajoutés à l'index. J'ai une configuration bash alias pour quand je veux supprimer des fichiers supprimés de git sans toucher aux autres fichiers:

alias grma='git ls-files --deleted -z | xargs -0 git rm'

Tous les fichiers qui ont été supprimés du système de fichiers sont ajoutés à l'index comme supprimés.


47
2018-01-31 04:50



Pas que cela compte vraiment, mais je ne suis pas d'accord avec la réponse choisie:

git add -u 

... supprimera les fichiers de l'index si les fichiers correspondants dans l'arbre de travail ont été supprimés, mais il mettra également en scène le nouveau contenu modifié des fichiers suivis.

git rm $(git ls-files --deleted)

... d'un autre côté, seulement les fichiers supprimés qui ont été suivis.

Donc, selon moi, c'est la meilleure option.


38
2018-04-09 11:24



Si ce sont les seuls changements, vous pouvez simplement faire

git commit -a

pour valider tous les changements. Cela inclura les fichiers supprimés.


28
2018-01-29 17:29



git ls-files --deleted | xargs git rm 

est la meilleure option pour ajouter seulement des fichiers supprimés.

Voici quelques autres options.

git add .  => Add all (tracked and modified)/new files in the working tree.

git add -u => Add all modified/removed files which are tracked.

git add -A => Add all (tracked and modified)/(tracked and removed)/new files in the working tree.

git commit -a -m "commit message" - Add and commit modified/removed files which are tracked.

19
2017-10-01 19:36