Comment puis-je liste tous les fichiers supprimés dans un dépôt git?

je sais que git stocke des informations sur le moment où les fichiers sont supprimés et je suis capable de vérifier les propagations individuelles pour voir quels fichiers ont été supprimés, mais y a-t-il une commande qui générerait une liste de chaque fichier supprimé au cours de la durée de vie d'un dépôt?

236
git
demandé sur mikemaccana 2011-05-16 17:15:27

7 réponses

git log --diff-filter=D --summary

voir trouver et restaurer un fichier supprimé dans un dépôt Git

si vous ne voulez pas toutes les informations sur les commits dans lesquels ils ont été supprimés, vous pouvez simplement ajouter un grep delete .

git log --diff-filter=D --summary | grep delete
334
répondu I82Much 2017-05-23 12:18:25

Ce n'est ce que vous voulez, je pense:

git log --all --pretty=format: --name-only --diff-filter=D | sort -u

... que je viens de prendre plus ou moins directement de cette autre réponse .

77
répondu Mark Longair 2017-05-23 12:34:47

si vous êtes seulement intéressé à voir les fichiers actuellement supprimés, vous pouvez utiliser ceci:

git ls-files --deleted

si vous voulez alors les enlever (dans le cas où vous les avez supprimés ne pas utiliser "git rm") pipe qui résultent à xargs git rm

git ls-files --deleted | xargs git rm
27
répondu Jim Clouse 2014-04-25 02:10:57

, Citant des ce stackoverflow réponse. Une façon très soignée d'obtenir le type de changement (a:ajouté, M:modifié, d:supprimé) pour chaque fichier qui a été modifié.

git diff --name-status
7
répondu akshay 2017-05-23 12:26:35

et si vous voulez d'une façon ou d'une autre limiter les résultats voici un beau:

$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ /gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7

vous obtiendrez tous les fichiers supprimés de some_dir (voir la commande sed) ainsi que le numéro de propagation dans lequel cela se produit. Tout sed regex fera (Je l'utilise pour trouver les types de fichiers supprimés, etc)

4
répondu estani 2012-10-23 09:56:06

comme Windows n'a pas de commande grep , cela a fonctionné pour moi dans PowerShell:

git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
2
répondu James Skemp 2016-12-22 15:40:18

vous obtiendrez une liste de tous les fichiers qui ont été supprimés dans toutes les branches, triés par leur chemin:

git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt

fonctionne dans msysgit (2.6.1.Windows.1). Note: nous avons besoin de "supprimer le mode 100" car les fichiers git peuvent avoir été commités en mode 100644 ou 100755.

0
répondu Mr_and_Mrs_D 2016-03-20 18:34:13