Liste de tous les développeurs sur un projet dans Git

Est-il possible de répertorier tous les utilisateurs ayant consortingbué à un projet (utilisateurs ayant effectué des commits) dans Git?

Des statistiques supplémentaires?

Pour afficher tous les utilisateurs et le nombre de commits:

git shortlog --summary --numbered 

Ou simplement:

 git shortlog -sn 

Si vous souhaitez être plus précis dans la liste (recherchez une liste de committer et d’auteur uniques), vous pouvez utiliser git log :

 git log --pretty="%an %ae%n%cn %ce" | sort | uniq 
  • %an nom d’auteur
  • %ae auteur email
  • %n nouvelle ligne
  • %cn nom du committer
  • %ce courriel committer

Les autres espaces réservés sont décrits dans la jolie documentation imprimée de git log .

Vous pouvez essayer ceci:

 git log | grep Author: | sort | uniq 

(utilisateurs ayant effectué des commits)

Remarque: par défaut, les groupes de git shortlog par les auteurs .

Si vous devez les regrouper par committers, vous aurez besoin de Git 2.12 (T1 2017)

 git shortlog -snc 

Voir commit 03f4082 (16 déc 2016) par Jeff King ( peff ) .
Voir commit fbfda15 (11 oct 2016) par Linus Torvalds ( torvalds ) .
(Fusionné par Junio ​​C Hamano – gitster – dans commit ad1b4e2 , 27 décembre 2016)

Linus Torvalds lui-même introduit cette fonctionnalité:

shortlog : informations shortlog par committer

Dans certaines situations, vous pouvez souhaiter regrouper les commits non pas par auteur, mais par committer à la place.

Par exemple, quand je voulais juste chercher ce qui me manquait encore dans linux-next dans la fenêtre de fusion actuelle, je me moque beaucoup de savoir qui a écrit un patch, de quelle origine il provient, à “qui l’a commis”.

Donc, faites en sorte que glog shortlog prenne l’option ” -c ” ou ” --committer ” pour changer de groupement.

Je n’ai pas encore essayé de le tester moi-même, mais cela semble très intéressant pour les statistiques de projet pour un repository Git: https://github.com/visionmedia/git-extras

Consultez le catalogue bin pour voir les différents scripts.

Par exemple, le script git-count (nombre de validations par committer):

 git shortlog -n $@ | grep "):" | sed 's|:||' 

Une autre option peut être:

 git log --format='%aN' | sort -u 

De grandes réponses par @ pedro-nascimento, par @mic_e et d’autres résolvent déjà le problème.

De plus, vous pouvez append la ligne suivante à votre .gitconfig

 consortingbutors = shortlog -e --summary --numbered 

ou en coquille

 git config --global alias.consortingbutors 'shortlog -e --summary --numbered' 

Vous pouvez essayer un pack incroyable appelé git-extras . Plus précisément, les commandes git-summary , git-count et peut-être d’ autres .

La plupart des référentiels contiennent plusieurs identités ([email, nom] paires) par auteur. Si je peux suggérer une solution non-CLI, essayez Gitential qui déduplique également les identités des auteurs.