列出Git中项目的所有开发人员

Rit*_*ira 175 git

是否可以在Git中列出所有贡献给项目的用户(已完成提交的用户)?

还有其他统计数据

Ped*_*nto 329

显示所有用户和提交的数量:

git shortlog --summary --numbered --email
Run Code Online (Sandbox Code Playgroud)

或者干脆:

git shortlog -sne
Run Code Online (Sandbox Code Playgroud)

  • 要获取电子邮件地址,请添加`-e`. (59认同)
  • 要显示所有分支(不仅是当前分支中的分支)的用户,您必须添加`--all`标志 (10认同)
  • 请注意,如果要在脚本中使用此命令,或者使用"ant"之类的命令,则必须指定修订版或不输出任何内容.对于当前版本,您可以使用HEAD:`git shortlog -sn HEAD` (3认同)
  • 这对于检查谁接触了特定文件而不是整个项目也很有用。`git shortlog --summary --numbered <pathToFile>` (3认同)
  • 如果我不希望提交次数怎么办? (2认同)

Gui*_*ent 35

如果您想在列表中更具体(查找唯一提交者和作者的列表),您可以使用git log:

git log --pretty="%an %ae%n%cn %ce" | sort | uniq
Run Code Online (Sandbox Code Playgroud)
  • %an 作者姓名
  • %ae 作者电邮
  • %n 新队
  • %cn 提交者名称
  • %ce 提交者电子邮件

其他占位符在漂亮的打印文档git log中描述.

  • @ssc 提交者电子邮件可能与作者电子邮件不同。%n 用于换行以查找这些差异 (2认同)
  • 使用 `git log --pretty="%aN <%aE>%n%cN <%cE>" | 排序| uniq ` 尊重 `.mailmap` 文件 (2认同)

San*_*ang 16

你可以试试这个:

git log | grep Author: | sort | uniq
Run Code Online (Sandbox Code Playgroud)

  • 对于有兴趣更新 .mailmap 文件的任何人来说,这是最有用的命令! (2认同)

Von*_*onC 6

(已完成提交的用户)

注意:默认情况下git shortlog,作者提交组.

如果您需要通过提交者对它们进行分组,则需要Git 2.12(2017年第1季度)

git shortlog -snc
Run Code Online (Sandbox Code Playgroud)

请参阅Jeff King()提交03f4082(2016年12月16日). 请参阅Linus Torvalds()提交fbfda15(2016年10月11日).(由Junio C Hamano合并- -提交ad1b4e2,2016年12月27日)peff
torvalds
gitster

Linus Torvalds自己介绍了这个功能:

shortlog:按提交者信息分组

在某些情况下,您可能希望不是按作者对提交进行分组,而是通过提交者对提交进行分组.

例如,当我只想查看linux-next当前合并窗口中我仍然缺少的内容时,我并不在乎编写补丁的人是谁,因为git tree它来自于什么,通常归结为"谁承诺它".

因此,使git shortlog采用" -c"或" --committer"选项将分组切换为该选项.


小智 5

@pedro-nascimento、@mic_e 和其他人的精彩回答已经解决了这个问题。

此外,您可以将以下行添加到您的.gitconfig

contributors = shortlog -e --summary --numbered
Run Code Online (Sandbox Code Playgroud)

或壳式

git config --global alias.contributors 'shortlog -e --summary --numbered'
Run Code Online (Sandbox Code Playgroud)

之后你可以简单地调用:git contributors