Git
Git-statistik
Sök…
Syntax
- git-logg [<options>] [<revisionsområde>] [[-] <path>]
- git log - pretty = kort | git shortlog [<options>]
- git shortlog [<options>] [<revisionsintervall>] [[-] <path>]
parametrar
Parameter | detaljer |
---|---|
-n , - --numbered | Sortera utdata enligt antalet åtaganden per författare istället för alfabetisk ordning |
-s , --summary | Ge bara en sammanfattning av åtagandena |
-e , - --email | Visa e-postadressen för varje författare |
--format [= <format>] | Istället för åtagandeämnet, använd annan information för att beskriva varje åtagande. <format> kan vara vilken sträng som helst som accepteras av --format alternativet i git log . |
-w [<bredd> [, <indent1> [, <indent2>]]] | Linewrap utmatningen genom att linda in varje rad i width . Den första raden i varje post indent1 av indent1 antal utrymmen, och efterföljande rader indent2 av indent2 utrymmen. |
<revisionsintervall> | Visa endast åtaganden i det angivna revisionsområdet. Som standard är hela historiken tills den aktuella åtaganden. |
[ -- ] <sökväg> | Visa endast åtaganden som förklarar hur filens matchande path blev. Sökvägar kan behöva förinställas med "-" för att skilja dem från alternativ eller revisionsområdet. |
Åtaganden per utvecklare
Git- shortlog
används för att sammanfatta git-logg-utgångarna och gruppera åtaganden efter författare.
Som standard visas --summary
men argument - --summary
eller -s
hoppar över meddelandena och ger en lista med författare med deras totala antal åtaganden.
--numbered
eller -n
ändrar ordningen från alfabetisk (av författare stigande) till antal kommit som faller.
git shortlog -sn #Names and Number of commits
git shortlog -sne #Names along with their email ids and the Number of commits
eller
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Obs: Åtaganden från samma person kanske inte grupperas där deras namn och / eller e-postadress har stavats annorlunda. Till exempel John Doe
och Johnny Doe
visas separat i listan. För att lösa detta, se .mailmap
funktionen.
Åtaganden per datum
git log --pretty=format:"%ai" | awk '{print " : "$1}' | sort -r | uniq -c
Totalt antal åtaganden i en filial
git log --pretty=oneline |wc -l
Lista varje gren och datum för den senaste revisionen
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
Kodslinjer per utvecklare
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
Lista alla åtaganden i vackert format
git log --pretty=format:"%Cgreen%ci %Cblue%cn %Cgreen%cr%Creset %s"
Detta ger en fin översikt över alla åtaganden (1 per rad) med datum, användar- och åtkomstmeddelande.
--pretty
har många platshållare, var och en börjar med %
. Alla alternativ finns här
Hitta alla lokala gitförvar på datorn
För att lista alla platser för gitförvar på din kan du köra följande
find $HOME -type d -name ".git"
Förutsatt att du har locate
borde detta vara mycket snabbare:
locate .git |grep git$
Om du har gnu locate
eller mlocate
, kommer detta bara att välja git dirs:
locate -ber \\.git$
Visa det totala antalet åtaganden per författare
För att få det totala antalet åtaganden som varje utvecklare eller bidragsgivare har gjort på ett arkiv kan du helt enkelt använda git shortlog
:
git shortlog -s
som ger författarens namn och antal åtaganden av var och en.
Om du vill att resultaten ska beräknas på alla grenar lägger du till - --all
flaggar i kommandot:
git shortlog -s --all