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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow