Ist es möglich, alle Benutzer, die zu einem Projekt beigetragen haben (Benutzer, die Commits durchgeführt haben), in Git aufzulisten?
Irgendwelche zusätzlichen Statistiken?
Ritam Nemira
Ist es möglich, alle Benutzer, die zu einem Projekt beigetragen haben (Benutzer, die Commits durchgeführt haben), in Git aufzulisten?
Irgendwelche zusätzlichen Statistiken?
Pedro Nascimento
So zeigen Sie alle Benutzer und E-Mails sowie die Anzahl der Commits im AKTUELLEN Zweig an:
git shortlog --summary --numbered --email
Oder einfach:
git shortlog -sne
Um Benutzer anzuzeigen von alle Filialen (nicht nur die im aktuellen Zweig) müssen Sie hinzufügen --all
Flagge:
git shortlog -sne --all
Beachten Sie, dass Sie, wenn Sie diesen Befehl innerhalb eines Skripts oder etwas wie “ant” verwenden möchten, eine Revision angeben müssen, da sonst nichts ausgegeben wird. Für die aktuelle Revision können Sie HEAD verwenden: git shortlog -sn HEAD
– Majenko
22. Mai ’14 um 18:03 Uhr
Um auch E-Mail-Adressen zu erhalten, fügen Sie hinzu -e
.
– Mäuse
30. Oktober 14 um 12:47 Uhr
Um Benutzer aus allen Branches anzuzeigen (nicht nur die in der aktuellen Branche), müssen Sie hinzufügen --all
Flagge
– Gigan Marco
6. Juli 15 um 6:58 Uhr
Was ist, wenn ich die Anzahl der Commits nicht möchte?
– Müde Bands
26. Juli 18 um 11:45 Uhr
Dies ist auch großartig, um zu überprüfen, wer eine bestimmte Datei und nicht das gesamte Projekt bearbeitet hat. git shortlog --summary --numbered <pathToFile>
– jxramos
4. Februar 19 um 23:02 Uhr
Guillaume Vincent
Wenn Sie in der Liste spezifischer sein möchten (finden Sie eine Liste mit eindeutigen Committern und Autoren), können Sie verwenden git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
Autorenname%ae
E-Mail des Autors%n
Neue Zeile%cn
Committer-Name%ce
Committer-E-MailWeitere Platzhalter sind in beschrieben hübsche Druckdokumentation von git log
.
Ich denke der %n
macht in Kombination mit (zeilenbasiert) nicht allzu viel Sinn sort
, macht es ? Die Zeile protokolliert Autor / Committer-Name / E-Mail in separaten Zeilen, sortiert aber über die gesamte Ausgabe …
– ssc
27. Juni 18 um 12:21 Uhr
Die E-Mail-Adresse des @ssc-Committers kann sich von der E-Mail-Adresse des Autors unterscheiden. %n ist für eine neue Zeile, um diese Unterschiede zu finden
– Guillaume Vincent
27. Juni 18 um 13:52 Uhr
Benutzen git log --pretty="%aN <%aE>%n%cN <%cE>" | sort | uniq
respektieren a .mailmap
Datei
– MaxNoe
19. Januar um 14:48 Uhr
Sie können dies versuchen:
git log | grep Author: | sort | uniq
Dies ist der nützlichste Befehl für alle, die daran interessiert sind, ihre .mailmap-Datei zu aktualisieren!
– Ahi Thunfisch
2. Mai 18 um 17:02 Uhr
besonders mit der --use-mailmap
Arg
– Olli
11. Mai 21 um 4:58 Uhr
(Benutzer, die Commits durchgeführt haben)
Hinweis: standardmäßig git shortlog
Gruppen begeht durch Autoren.
Wenn Sie sie nach Committern gruppieren müssen, benötigen Sie Git 2.12 (Q1 2017)
git shortlog -snc
Sehen 03f4082 übernehmen (16. Dezember 2016) von Jeff König (peff
).
Sehen fbfda15 begehen (11. Oktober 2016) von Linus Torvalds (torvalds
).
(Zusammengeführt von Junio C. Hamano — gitster
— in ad1b4e2 übergeben27. Dez. 2016)
Linus Torvalds selbst stellt dieses Feature vor:
shortlog
: Gruppieren nach Committer-InformationenIn manchen Situationen möchten Sie die Commits vielleicht nicht nach Autor, sondern nach Committer gruppieren.
Zum Beispiel, wenn ich einfach mal nachschauen wollte, was mir noch fehlt
linux-next
Im aktuellen Merge-Fenster ist es mir weniger wichtig, wer einen Patch geschrieben hat, als wasgit tree
es kam von, was im Allgemeinen darauf hinausläuft, “wer es begangen hat”.Also lass Git Shortlog ein “
-c
” oder “--committer
” Option, um die Gruppierung darauf umzustellen.
ΦXocę 웃 Пepeúpa ツ
Eine weitere Option kann sein:
git log --format="%aN" | sort -u
Großartige Antworten von @pedro-nascimento, von @mic_e und anderen lösen das Problem bereits.
Zusätzlich können Sie die folgende Zeile zu Ihrer hinzufügen .gitconfig
contributors = shortlog -e --summary --numbered
oder im Schalentyp
git config --global alias.contributors 'shortlog -e --summary --numbered'
Und danach können Sie einfach aufrufen: git contributors
Peter Mortensen
Ich bin noch nicht dazu gekommen, es selbst zu testen, aber das sieht für Projektstatistiken für ein Git-Repository sehr gut aus: https://github.com/visionmedia/git-extras
Besuche die bin
Katalog, um die verschiedenen Skripte zu sehen.
Zum Beispiel die git-count
Skript (Commit-Anzahl pro Committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
git shortlog -ns scheint weniger hackig zu sein
– TomDLT
20. Oktober 16 um 8:47 Uhr
@TomDLT Seit ich dies vor 4 Jahren gepostet habe, hat sich dieses Beispielskript in Git-Extras geändert. Aber ich denke, mein Rat, sich Git-Skripte aus Projekten wie Git-Extras oder aus den Dotfiles der Leute anzusehen, ist immer noch ein guter Rat. Wenn Sie nach interessanten Git-Befehlen suchen, würde ich auch die Dotfiles von Gary Bernhardt empfehlen: github.com/garybernhardt/dotfiles/tree/master/bin
– Daniel Lee
20. Oktober 16 um 8:54 Uhr
.