260 votes

Lister tous les développeurs d'un projet dans Git

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 ?

489voto

Pedro Nascimento Points 3781

Pour montrer tous les utilisateurs & emails, et le nombre de commits dans la branche CURRENT :

git shortlog --summary --numbered --email

Ou simplement :

git shortlog -sne

Pour afficher les utilisateurs de toutes les branches (pas seulement ceux de la branche courante) vous devez ajouter --all drapeau :

git shortlog -sne --all

46voto

guillaumevincent Points 633

Si vous voulez être plus spécifique dans la liste (trouver une liste de committer et d'auteur unique), 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 de l'auteur
  • %ce email du responsable

D'autres caractères de remplacement sont décrits dans le une jolie documentation imprimée de git log .

22voto

Santa Zhang Points 400

Vous pouvez essayer ceci :

git log | grep Author: | sort | uniq

10voto

VonC Points 414372

(utilisateurs qui ont fait des commits)

Note : par défaut git shortlog regroupe les commits par auteurs .

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

git shortlog -snc

Voir commettre 03f4082 (16 déc. 2016) par Jeff King ( peff ) .
Voir commettre fbfda15 (11 oct. 2016) par Linus Torvalds ( torvalds ) .
(fusionné par Junio C Hamano -- gitster -- sur commettre ad1b4e2 , 27 déc. 2016)

Linus Torvalds lui-même présente cette fonctionnalité :

shortlog : groupe par information sur les commettants

Dans certaines situations, vous pouvez vouloir regrouper les commits non pas par auteur, mais plutôt par auteur.

Par exemple, quand j'ai voulu vérifier ce qu'il me manquait encore de linux-next dans la fenêtre de fusion actuelle, je ne me préoccupe pas tant de qui a écrit un patch, que de ce que git tree d'origine, qui se résume généralement à "qui l'a commis".

Il faut donc que git shortlog prenne un " -c " ou " --committer L'option " " permet de changer de groupe.

3voto

Une autre option peut être :

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

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