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?
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?
Antworten:
So zeigen Sie alle Benutzer und E-Mails sowie die Anzahl der Commits im CURRENT-Zweig an:
git shortlog --summary --numbered --email
Oder einfach:
git shortlog -sne
Um Benutzer aus allen Zweigen anzuzeigen (nicht nur aus denen im aktuellen Zweig), müssen Sie das folgende --all
Flag hinzufügen :
git shortlog -sne --all
-e
.
--all
Flagge hinzufügen
git shortlog --summary --numbered <pathToFile>
Wenn Sie in der Liste genauer sein möchten (eine Liste mit eindeutigen Committern und Autoren finden), können Sie Folgendes verwenden git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
Autorenname%ae
Autor E-Mail%n
Neue Zeile%cn
Name des Committers%ce
Committer-E-MailAndere Platzhalter sind in der hübschen Druckdokumentation von beschriebengit log
.
%n
macht in Kombination mit (zeilenbasiert) nicht allzu viel Sinn sort
, oder? Die Zeile protokolliert Autor / Committer-Name / E-Mail in separaten Zeilen, sortiert aber über die gesamte Ausgabe ...
Sie können dies versuchen:
git log | grep Author: | sort | uniq
(Benutzer, die Commits durchgeführt haben)
Hinweis: Standardmäßig werden git shortlog
Gruppen von Autoren festgeschrieben .
Wenn Sie sie nach Committern gruppieren müssen, benötigen Sie Git 2.12 (Q1 2017).
git shortlog -snc
Siehe Commit 03f4082 (16. Dezember 2016) von Jeff King ( peff
) .
Siehe Commit fbfda15 (11. Oktober 2016) von Linus Torvalds ( torvalds
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit ad1b4e2 , 27. Dezember 2016)
Linus Torvalds selbst stellt diese Funktion vor:
shortlog
: Informationen nach Committer gruppierenIn einigen Situationen möchten Sie die Commits möglicherweise nicht nach Autor, sondern nach Committer gruppieren.
Wenn ich zum Beispiel nur nachsehen wollte, was mir
linux-next
im aktuellen Zusammenführungsfenster noch fehlt , ist es mir weniger wichtig, wer einen Patch geschrieben hat, als vielmehrgit tree
, woher er stammt, was im Allgemeinen darauf hinausläuft, wer sich verpflichtet hat es".Lassen Sie also git shortlog die Option "
-c
" oder "--committer
" wählen, um die Gruppierung darauf umzuschalten.
Eine andere Option kann sein:
git log --format='%aN' | sort -u
Ich bin noch nicht dazu gekommen, es selbst zu testen, aber das sieht für Projektstatistiken für ein Git-Repository wirklich gut aus: https://github.com/visionmedia/git-extras
Schauen Sie sich den bin
Katalog an, um die verschiedenen Skripte zu sehen.
Zum Beispiel das git-count
Skript (Commit-Anzahl pro Committer):
git shortlog -n $@ | grep "):" | sed 's|:||'
Tolle Antworten von @ pedro-nascimento, von @mic_e und anderen lösen das Problem bereits.
Darüber hinaus können Sie die folgende Zeile zu Ihrer hinzufügen .gitconfig
contributors = shortlog -e --summary --numbered
oder in Shell-Typ
git config --global alias.contributors 'shortlog -e --summary --numbered'
Und danach können Sie einfach aufrufen: git contributors
git contributors
Sie können eine erstaunliche Packung namens Git-Extras ausprobieren . Insbesondere die Befehle git-summary , git-count und möglicherweise einige andere .
git shortlog -sn HEAD