629 votes

Comment faire pour compter les lignes totales changés par un auteur spécifique dans un dépôt Git ?

Existe-t-il une commande que je peux invoquer qui seront pris en compte les lignes modifiées par un auteur spécifique dans un dépôt Git ? Je sais qu’il doit y avoir des façons de compter le nombre de validations comme Github accomplit cette tâche pour leur graphique de l’Impact. Merci d’avance !

808voto

Alex Points 3973

Cela donne quelques statistiques sur l’auteur, de modifier au besoin.

379voto

Charles Bailey Points 244082

La sortie de la commande suivante devrait être relativement facile d'envoyer de script pour ajouter le total:

git log --author="<authorname>" --oneline --shortstat

Cela donne des stats de tous les commits sur l'actuel CHEF. Si vous souhaitez ajouter des stats dans d'autres branches que vous devrez fournir comme des arguments d' git log.

Pour passer à un script, en supprimant même le "oneline" format qui peut être fait avec un vide format de journal, et comme le faisait remarquer par Jakub Narębski, --numstat est une autre alternative. Il génère un fichier plutôt que par la ligne de statistiques mais il est encore plus facile à analyser.

git log --author="<authorname>" --pretty=tformat: --numstat

341voto

gerty3000 Points 1122

Dans le cas où quelqu'un veut voir les stats pour chaque utilisateur dans la base de leur code, un couple de mes collègues est venu récemment avec ce bon mot horrible :

(Prend quelques minutes à croquer par notre repo, qui a autour de validations de 10-15k.)

114voto

mmrobins Points 3026

J'ai trouvé le suivant à être utile pour voir celle qui avait le plus de lignes qui sont actuellement dans la base de code:

git ls-files -z | xargs -0n1 git blame -w | ruby -n -e '$_ =~ /^.*\((.*?)\s[\d]{4}/; puts $1.strip' | sort -f | uniq -c | sort -n

Les autres réponses ont principalement porté sur des lignes de changé s'engage, mais s'engage à ne pas survivre et se sont écrasés, ils ont été le taux de désabonnement. Le ci-dessus incantation vous reçoit aussi tous les participants triés par lignes au lieu d'un seul à la fois. Vous pouvez ajouter des options à git blâmer (-C -M) pour obtenir certains des meilleurs numéros de prendre le fichier de mouvement et de la ligne de mouvement entre en compte les fichiers, mais la commande peut exécuter un beaucoup plus longtemps si vous le faites.

Aussi, si vous êtes à la recherche pour les lignes modifiées dans tous les commits pour tous les participants, le petit script est utile:

http://git-wt-commit.rubyforge.org/#git-rank-contributors

104voto

Jakub Narębski Points 87537

Pour compter le nombre de commet par un auteur donné (ou tous les auteurs) sur une branche, vous pouvez utiliser git-shortlog; Voir en particulier son et options, par exemple lorsqu’il est exécuté sur le dépôt git :

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