È possibile elencare tutti gli utenti che hanno contribuito a un progetto (utenti che hanno eseguito il commit) in Git?
Altre statistiche?
È possibile elencare tutti gli utenti che hanno contribuito a un progetto (utenti che hanno eseguito il commit) in Git?
Altre statistiche?
Risposte:
Per mostrare tutti gli utenti e le e-mail e il numero di commit nella sezione CORRENTE:
git shortlog --summary --numbered --email
O semplicemente:
git shortlog -sne
Per mostrare gli utenti di tutti i rami (non solo quelli nel ramo corrente) devi aggiungere --all
flag:
git shortlog -sne --all
-e
.
--all
bandiera
git shortlog --summary --numbered <pathToFile>
Se vuoi essere più specifico nell'elenco (trova un elenco di committer e autore unici), puoi usare git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
nome dell'autore%ae
email dell'autore%n
nuova linea%cn
nome del committer%ce
email committerAltri segnaposto sono descritti nella bella documentazione stampata digit log
.
%n
non abbia troppo senso in combinazione con (basato sulla linea) sort
, vero? La riga registra l'autore / nome del committer / e-mail in righe separate, ma ordina su tutto l'output ...
Puoi provare questo:
git log | grep Author: | sort | uniq
(utenti che hanno eseguito il commit)
Nota: per impostazione predefinita, i git shortlog
gruppi eseguono il commit degli autori .
Se devi raggrupparli per committer, avrai bisogno di Git 2.12 (Q1 2017)
git shortlog -snc
Vedi commit 03f4082 (16 dic 2016) di Jeff King ( peff
) .
Vedi commit fbfda15 (11 ott 2016) di Linus Torvalds ( torvalds
) .
(Unita da Junio C Hamano - gitster
- in commit ad1b4e2 , 27 dic 2016)
Lo stesso Linus Torvalds introduce questa funzione:
shortlog
: raggruppa per informazioni committerIn alcune situazioni potresti voler raggruppare i commit non per autore, ma per committer.
Ad esempio, quando volevo solo cercare ciò che mi manca ancora
linux-next
nella finestra di unione corrente, non mi interessa molto di chi ha scritto una patch, come quello dagit tree
cui proviene, che generalmente si riduce a "chi ha commesso esso".Quindi fai in modo che git shortlog prenda un'opzione "
-c
" o "--committer
" per passare al raggruppamento.
Un'altra opzione può essere:
git log --format='%aN' | sort -u
Non ho ancora avuto modo di provarlo da solo, ma questo sembra davvero bello per le statistiche di progetto per un repository Git: https://github.com/visionmedia/git-extras
Dai un'occhiata al bin
catalogo per vedere i diversi script.
Ad esempio, lo git-count
script (conteggio commit per committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
Grandi risposte di @ pedro-nascimento, di @mic_e e altri già risolvono il problema.
Inoltre, puoi aggiungere la seguente riga alla tua .gitconfig
contributors = shortlog -e --summary --numbered
o nel tipo di shell
git config --global alias.contributors 'shortlog -e --summary --numbered'
E dopo puoi semplicemente invocare: git contributors
git contributors
Puoi provare un fantastico pacchetto chiamato git-extra . In particolare, i comandi git-summary , git-count e forse qualche altro .
git shortlog -sn HEAD