Git
Statistiche Git
Ricerca…
Sintassi
- log git [<opzioni>] [<intervallo di revisione>] [[-] <percorso>]
- git log --pretty = short | shortcut git [<opzioni>]
- git shortlog [<opzioni>] [<intervallo di revisione>] [[-] <percorso>]
Parametri
Parametro | Dettagli |
---|---|
-n , --numbered | Ordina l'output in base al numero di commit per autore anziché l'ordine alfabetico |
-s , --summary | Fornire solo un riepilogo del conteggio dei commit |
-e , --email | Mostra l'indirizzo email di ciascun autore |
--format [= <formato>] | Invece del soggetto di commit, usa qualche altra informazione per descrivere ogni commit. <format> può essere qualsiasi stringa accettata dall'opzione --format di git log . |
-w [<larghezza> [, <indent1> [, <indent2>]]] | Linewrap l'output avvolgendo ogni linea in width . La prima riga di ogni voce è rientrata da indent1 numero di spazi e le righe successive sono rientrate dagli spazi indent2 . |
<intervallo di revisione> | Mostra solo commit nell'intervallo di revisione specificato. Predefinito per l'intera cronologia fino al commit corrente. |
[ -- ] <percorso> | Mostra solo commit che spiegano come i file che corrispondono al path sono diventati. I percorsi potrebbero dover essere preceduti da "-" per separarli dalle opzioni o dall'intervallo di revisione. |
Commits per sviluppatore
Git shortlog
viene utilizzato per riepilogare gli output log git e raggruppare i commit per autore.
Per impostazione predefinita, tutti i messaggi di commit sono mostrati ma argomenti - --summary
o -s
salta i messaggi e fornisce un elenco di autori con il loro numero totale di commit.
--numbered
o -n
cambia l'ordine da alfabetico (per autore crescente) a numero di commit decrescente.
git shortlog -sn #Names and Number of commits
git shortlog -sne #Names along with their email ids and the Number of commits
o
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Nota: i commit della stessa persona non possono essere raggruppati in cui il loro nome e / o indirizzo e-mail sono stati scritti in modo diverso. Ad esempio, John Doe
e Johnny Doe
appariranno separatamente nell'elenco. Per risolvere questo problema, fare riferimento alla funzione .mailmap
.
Impegni per data
git log --pretty=format:"%ai" | awk '{print " : "$1}' | sort -r | uniq -c
Numero totale di commit in una succursale
git log --pretty=oneline |wc -l
Elenco di ogni filiale e data dell'ultima revisione
for k in `git branch -a | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k --`\\t"$k";done | sort
Linee di codice per sviluppatore
git ls-tree -r HEAD | sed -Ee 's/^.{53}//' | \
while read filename; do file "$filename"; done | \
grep -E ': .*text' | sed -E -e 's/: .*//' | \
while read filename; do git blame --line-porcelain "$filename"; done | \
sed -n 's/^author //p' | \
sort | uniq -c | sort -rn
Elenca tutti i commit in un bel formato
git log --pretty=format:"%Cgreen%ci %Cblue%cn %Cgreen%cr%Creset %s"
Ciò fornirà una buona panoramica di tutti i commit (1 per riga) con data, utente e messaggio di commit.
L'opzione --pretty
ha molti segnaposto, ognuno a partire da %
. Tutte le opzioni possono essere trovate qui
Trova tutti i repository Git locali sul computer
Per elencare tutte le posizioni del repository git sul tuo puoi eseguire quanto segue
find $HOME -type d -name ".git"
Supponendo di aver locate
, questo dovrebbe essere molto più veloce:
locate .git |grep git$
Se hai gnu locate
o mlocate
, questo selezionerà solo le directory git:
locate -ber \\.git$
Mostra il numero totale di commit per autore
Per ottenere il numero totale di commit effettuati da ogni sviluppatore o contributore su un repository, puoi semplicemente utilizzare il git shortlog
:
git shortlog -s
che fornisce i nomi degli autori e il numero di commit di ciascuno.
Inoltre, se si desidera che i risultati vengano calcolati su tutti i rami, aggiungere --all
flag al comando:
git shortlog -s --all