43 votes

Rechercher des commits qui modifient les noms de fichiers correspondant à un modèle dans un référentiel GIT

J'aimerais trouver des commits dans ma base de code qui ajoutent des fichiers vidéo pour les jeter. Existe-t-il un moyen de rechercher ces fichiers dans git ?

Par exemple, disons que toutes les vidéos ont un nom de fichier se terminant par l'extension .wmv ; J'aimerais trouver tous les commits introduisant ces fichiers et m'en débarrasser avec une correction ou quelque chose du genre.

Des idées ?

52voto

knittl Points 64110

vous pouvez utiliser git log avec un pathspec :

 git log --all -- '*.wmv'

cela vous permettra d'obtenir tous les commits qui modifient les fichiers .wmv. oui, cela descendra également dans des sous-répertoires (mais vous devez entourer votre pathspec de guillemets simples, il sera donc passé tel quel à git).

si vous n'êtes intéressé que par les hachages de commit (scripts, etc.), utilisez directement la machine git rev-list

 git rev-list --all -- '*.wmv'

6voto

adl Points 7294

Si vous souhaitez supprimer ces fichiers de tous vos commits, pensez à réécrire l'intégralité de l'historique avec la commande filter-branch . Par exemple,

 git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r *.wml' HEAD

2voto

Eriko Morais Points 21

Tu peux essayer ceci :

 git log --follow *.wmv

cela listera tous les commits (avec hachage) qui ont modifié les fichiers wmv.

0voto

sehe Points 123151

Oui, comme mentionné, je pense que la suppression des commits qui les introduisent ne supprimera pas les blobs

Voir http://progit.org/book/ch9-7.html#removing_objects pour un traitement approfondi du sujet et des exemples

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X