156 votes

Puis-je obtenir que git me dise tous les fichiers qu'un utilisateur a modifiés?

Je voudrais que git me donne une liste de tous les fichiers modifiés par un utilisateur, pour tous les commits.

Mon cas d'utilisation particulier est que j'ai participé à la création d'un projet Ruby on rails et que nous souhaitons savoir quels fichiers ont déjà été créés et quels fichiers doivent encore être créés. Les utilisateurs en question ont uniquement travaillé sur i18n, pas sur le reste de la base de code. Donc, toutes les informations devraient être disponibles, mais je ne sais pas comment les diffuser.

196voto

h0tw1r3 Points 2512

Cela vous donnera une simple liste de fichiers, rien d’autre:

 git log --no-merges --stat --author="Pattern" --name-only --pretty=format:"" | sort -u
 

Changez --author pour --committer si nécessaire.

152voto

Steve Prentice Points 7638

Ce n'est pas le seul moyen, mais ça marche:

 git log --pretty="%H" --author="authorname" |
    while read commit_hash
    do
        git show --oneline --name-only $commit_hash | tail -n+2
    done | sort | uniq
 

Ou, en une seule ligne:

 git log --pretty="%H" --author="authorname" | while read commit_hash; do git show --oneline --name-only $commit_hash | tail -n+2; done | sort | uniq
 

8voto

Robert S. Points 15449

Essayez git log --stat --committer=<user> . Il suffit de mettre le nom de l'utilisateur sur l'option --committer= (ou utiliser --author= selon les cas).

Cela va cracher tous les fichiers par commit, il y aura donc probablement des doublons.

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