Est-il possible de lister tous les utilisateurs qui ont contribué à un projet (utilisateurs qui ont fait des commits) dans Git?
Des statistiques supplémentaires?
Est-il possible de lister tous les utilisateurs qui ont contribué à un projet (utilisateurs qui ont fait des commits) dans Git?
Des statistiques supplémentaires?
Réponses:
Pour afficher tous les utilisateurs et e-mails, ainsi que le nombre de validations dans la branche ACTUELLE:
git shortlog --summary --numbered --email
Ou simplement:
git shortlog -sne
Pour afficher les utilisateurs de toutes les branches (pas seulement ceux de la branche actuelle), vous devez ajouter un --all
indicateur:
git shortlog -sne --all
-e
.
--all
indicateur
git shortlog --summary --numbered <pathToFile>
Si vous voulez être plus précis dans la liste (trouver une liste de committer unique et d'auteur), vous pouvez utiliser git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
nom de l'auteur%ae
email de l'auteur%n
nouvelle ligne%cn
nom du committer%ce
e-mail du committerD'autres espaces réservés sont décrits dans la jolie documentation imprimée degit log
.
%n
n'a pas trop de sens en combinaison avec (basé sur la ligne) sort
, n'est-ce pas? La ligne enregistre le nom / e-mail de l'auteur / committer sur des lignes distinctes, mais trie l'ensemble de la sortie ...
Vous pouvez essayer ceci:
git log | grep Author: | sort | uniq
(utilisateurs ayant effectué des validations)
Remarque: par défaut, les git shortlog
groupes sont validés par les auteurs .
Si vous devez les regrouper par committers, vous aurez besoin de Git 2.12 (Q1 2017)
git shortlog -snc
Voir commit 03f4082 (16 décembre 2016) de Jeff King ( peff
) .
Voir commit fbfda15 (11 octobre 2016) par Linus Torvalds ( torvalds
) .
(Fusionné par Junio C Hamano - gitster
- dans commit ad1b4e2 , 27 déc 2016)
Linus Torvalds lui-même présente cette fonctionnalité:
shortlog
: informations groupées par committerDans certaines situations, vous souhaiterez peut-être regrouper les validations non pas par auteur, mais par committer à la place.
Par exemple, lorsque je voulais simplement rechercher ce qui me manque encore
linux-next
dans la fenêtre de fusion actuelle, je me fiche de savoir qui a écrit un correctif,git tree
mais de son origine, qui se résume généralement à "qui a commis il".Donc, faites en sorte que git shortlog prenne une option "
-c
" ou "--committer
" pour basculer le regroupement vers cela.
Une autre option peut être:
git log --format='%aN' | sort -u
Je ne l'ai pas encore testé moi-même, mais cela semble vraiment sympa pour les statistiques de projet pour un référentiel Git: https://github.com/visionmedia/git-extras
Consultez le bin
catalogue pour voir les différents scripts.
Par exemple, le git-count
script (nombre de validations par committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
Les bonnes réponses de @ pedro-nascimento, de @mic_e et d'autres résolvent déjà le problème.
De plus, vous pouvez ajouter la ligne suivante à votre .gitconfig
contributors = shortlog -e --summary --numbered
ou en coquille
git config --global alias.contributors 'shortlog -e --summary --numbered'
Et après cela, vous pouvez simplement invoquer: git contributors
git contributors
Vous pouvez essayer un pack incroyable appelé git-extras . Plus précisément, les commandes git-summary , git-count et peut-être une autre .
git shortlog -sn HEAD