Je sais que Git stocke des informations sur le moment où les fichiers sont supprimés et je peux vérifier les validations individuelles pour voir quels fichiers ont été supprimés, mais existe-t-il une commande qui générerait une liste de tous les fichiers supprimés sur la durée de vie d'un référentiel?
306
git diff --name-status commit_hash
.Réponses:
Voir Rechercher et restaurer un fichier supprimé dans un référentiel Git
Si vous ne voulez pas toutes les informations sur le commit dans lequel elles ont été supprimées, vous pouvez simplement y ajouter un
grep delete
.la source
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
car si le message de validation contient le mot supprimer, il sera également récupéré. Utilisezgrep 'delete mode'
plutôt.Cela fait ce que vous voulez, je pense:
... que je viens de reprendre plus ou moins directement de cette autre réponse .
la source
Si vous souhaitez uniquement voir les fichiers actuellement supprimés, vous pouvez utiliser ceci:
si vous souhaitez ensuite les supprimer (au cas où vous les auriez supprimés en n'utilisant pas "git rm") pipe qui aboutirait à xargs git rm
la source
git rm $(git ls-files --deleted)
Citant cette réponse Stack Overflow.
C'est un moyen assez soigné d'obtenir le type de changement (A: ajouté, M: modifié, D: supprimé) pour chaque fichier qui a été modifié.
la source
Et si vous voulez en quelque sorte restreindre les résultats, voici un bon résultat:
Vous obtiendrez tous les fichiers supprimés
some_dir
(voir la commande sed) ainsi que le numéro de commit dans lequel cela se produit. Tout regex sed fera l'affaire (je l'utilise pour trouver les types de fichiers supprimés, etc.)la source
git log --diff-filter=D .
Étant donné que Windows n'a pas de
grep
commande, cela a fonctionné pour moi dans PowerShell:la source
Select-String
?Afficher tous les fichiers supprimés dans some_branch
ou
la source
git diff origin/master...origin/some_branch --name-status | grep ^D
ougit diff origin/master...origin/some_branch --name-status --diff-filter=D
Cela vous donnera une liste de tous les fichiers qui ont été supprimés dans toutes les branches, triés par leur chemin:
Fonctionne en msysgit (2.6.1.windows.1). Notez que nous avons besoin de "supprimer le mode 100" car les fichiers git peuvent avoir été validés en mode 100644 ou 100755.
la source