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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow