Git
Git statistieken
Zoeken…
Syntaxis
- git log [<options>] [<revisiebereik>] [[-] <path>]
- git log --pretty = kort | git shortlog [<opties>]
- git shortlog [<options>] [<revisiebereik>] [[-] <path>]
parameters
Parameter | Details |
---|---|
-n , - --numbered | Sorteer de uitvoer op basis van het aantal commits per auteur in plaats van alfabetische volgorde |
-s , - --summary | Geef alleen een overzicht van de vastleggingen |
-e , --email | Toon het e-mailadres van elke auteur |
--format [= <format>] | Gebruik in plaats van het commit-onderwerp wat andere informatie om elke commit te beschrijven. <format> kan elke string zijn die wordt geaccepteerd door de --format optie van git log . |
-w [<breedte> [, <indent1> [, <indent2>]]] | Lijn de uitvoer opnieuw in door elke lijn op width in te width . De eerste regel van elk item wordt ingesprongen door indent1 aantal spaties en opeenvolgende regels worden ingesprongen door indent2 spaties. |
<revisiebereik> | Show alleen commits in het opgegeven revisiebereik. Standaard voor de hele geschiedenis tot de huidige commit. |
[ -- ] <pad> | Show toont alleen commits die uitleggen hoe het path de bestanden overeenkwam. Paden moeten mogelijk worden voorafgegaan door "-" om ze te scheiden van opties of het revisiebereik. |
Commits per ontwikkelaar
Git shortlog
wordt gebruikt om de git- shortlog
samen te vatten en de commits per auteur te groeperen.
Standaard worden alle commit-berichten getoond, maar argument --summary
of -s
slaat de berichten over en geeft een lijst met auteurs met hun totale aantal commits.
--numbered
of -n
wijzigt de volgorde van alfabetisch (door auteur oplopend) in aantal aflopende commits.
git shortlog -sn #Names and Number of commits
git shortlog -sne #Names along with their email ids and the Number of commits
of
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Opmerking: Commits door dezelfde persoon mogen niet worden gegroepeerd wanneer hun naam en / of e-mailadres anders is gespeld. John Doe
en Johnny Doe
verschijnen bijvoorbeeld afzonderlijk in de lijst. Raadpleeg de .mailmap
functie om dit op te lossen.
Commits per datum
git log --pretty=format:"%ai" | awk '{print " : "$1}' | sort -r | uniq -c
Totaal aantal commits in een filiaal
git log --pretty=oneline |wc -l
Lijst met elke tak en de datum van de laatste revisie
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
Lijnen code per ontwikkelaar
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
Lijst alle commits in een mooi formaat
git log --pretty=format:"%Cgreen%ci %Cblue%cn %Cgreen%cr%Creset %s"
Dit geeft een mooi overzicht van alle commits (1 per regel) met datum, gebruiker en commit bericht.
De optie --pretty
heeft veel tijdelijke aanduidingen, elk beginnend met %
. Alle opties zijn hier te vinden
Vind alle lokale Git-opslagplaatsen op de computer
Om alle git repository-locaties op je lijst weer te geven, kun je het volgende uitvoeren
find $HOME -type d -name ".git"
Ervan uitgaande dat u locate
, zou dit veel sneller moeten zijn:
locate .git |grep git$
Als je gnu locate
of mlocate
, selecteert dit alleen de git dirs:
locate -ber \\.git$
Toon het totale aantal commits per auteur
Om het totale aantal commits te krijgen dat elke ontwikkelaar of bijdrager heeft gemaakt op een repository, kun je eenvoudig de git shortlog
:
git shortlog -s
die de auteursnamen en het aantal commits van elk bevat.
Als u bovendien de resultaten voor alle takken wilt laten berekenen, voegt u --all
flag toe aan de opdracht:
git shortlog -s --all