是否可以在Git中列出所有贡献给项目的用户(已完成提交的用户)?
还有其他统计数据吗?
答案 0 :(得分:290)
显示所有用户和提交次数:
git shortlog --summary --numbered
或者简单地说:
git shortlog -sn
答案 1 :(得分:31)
如果您想在列表中更具体(查找唯一提交者和作者的列表),可以使用git log
:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an
作者姓名%ae
作者电子邮件%n
新行%cn
提交者名称%ce
提交者电子邮件 pretty print documentation of git log
中描述了其他占位符。
答案 2 :(得分:16)
你可以试试这个:
git log | grep Author: | sort | uniq
答案 3 :(得分:6)
(已完成提交的用户)
注意:默认情况下, authors 提交git shortlog
组提交。
如果您需要通过提交者对它们进行分组,则需要Git 2.12(2017年第1季度)
git shortlog -snc
commit 03f4082见Jeff King (peff
)(2016年12月16日)
请commit fbfda15查看Linus Torvalds (torvalds
)(2016年10月11日)
(Junio C Hamano -- gitster
--于2016年12月27日commit ad1b4e2合并)
Linus Torvalds自己介绍了这个功能:
shortlog
:按提交者信息分组在某些情况下,您可能希望不按作者对提交进行分组, 而是通过提交者。
例如,当我想在当前合并窗口中查找
linux-next
中仍然缺少的内容时,我并不在乎谁在乎谁 写了一个补丁,因为它来自git tree
,它通常会沸腾 到#34;谁承诺了#34;。所以让git shortlog采取"
-c
"或"--committer
"将分组切换为该选项的选项。
答案 4 :(得分:2)
另一种选择可以是:
git log --format='%aN' | sort -u
答案 5 :(得分:1)
我还没有亲自测试它,但这看起来非常适合Git存储库的项目统计:https://github.com/visionmedia/git-extras
查看bin
目录以查看不同的脚本。
例如,git-count
脚本(每个提交者的提交计数):
git shortlog -n $@ | grep "):" | sed 's|:||'
答案 6 :(得分:0)
你可以尝试一个名为git-extras的神奇包。具体来说,命令git-summary,git-count和some other。
答案 7 :(得分:0)
大多数存储库包含每个作者的多个身份([email,name]对)。如果我可以建议非CLI解决方案,请尝试Gitential,这也会对作者身份进行重复数据删除。
答案 8 :(得分:0)
@ pedro-nascimento,@mic_e和其他人的精彩答案已经解决了这个问题。
此外,您可以将以下行添加到.gitconfig
contributors = shortlog -e --summary --numbered
或shell类型
git config --global alias.contributors 'shortlog -e --summary --numbered'
答案 9 :(得分:0)
我正在使用GHI打开问题,并且只要知道用户名,就可以在其中将问题分配给特定用户
如果这对某人有帮助,我不会,但是我将在这里保留对我有用的解决方案:
要仅从我运行的GitHub中获取作者的用户名
git shortlog -sne | grep + | sed -e "s/.*+//; s/@.*//"
将仅列出当前项目中作者的用户名。
然后,我可以选择一个用户名并将问题分配给他/她。
对于想要从CMD /终端发布问题和/或分配给某人的任何人,请在此处记录 GHI https://github.com/stephencelis/ghi