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