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
: informationsshortlog
par committerDans 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.