其中git的承诺统计信息是易拉(Which Git commit stats are easy to

2019-07-19 21:26发布

以前我很喜欢TortoiseSVN的产生对于给定的SVN仓库简单提交统计数据的能力。 我不知道什么是Git中可用,我特别感兴趣:

  • 每个用户提交的数
  • 每个用户更改的行数
  • 活动一段时间(例如每周汇总的变化)

有任何想法吗?

Answer 1:

其实,GIT中已经有这样的命令:

git shortlog

你的情况,这听起来像你感兴趣的这种形式:

git shortlog -sne

请参阅--help的各种选项。

您还可能有兴趣在GitStats项目 。 他们有几个例子,包括统计信息的Git项目 。 从GitStat主页:

这是目前产生了一些统计信息的列表:

  • 一般统计:总的文件,行,提交的作者。
  • 活动时间:按天,周中的一天,一周的时间,一年,一年,月,年的月份的小时提交。
  • 作者:作者名单(姓名,提交(%),第一次提交日期,最后提交日期,使用年限),每月一书的作者,今年一书的作者。
  • 文件:按日期文件数量,扩展
  • 行:代码行日期


Answer 2:

首先,你没有任何东西(如网络拉),因为你在本地是整个仓库和整个历史。 我敢肯定有一些工具,这将使你的统计数据,但有时你可以只是创意与命令行。 举例来说,这(只是从我的头)会给你每用户提交数:

git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'

你问可能需要更多的其他统计以为把它付诸表决。 您可能希望看到可用的工具。 谷歌搜索git statistics指向GitStats工具,我有什么需要得到它在Windows上运行没有任何经验,甚至更少的想法,但你可以试试。



Answer 3:

最好的工具,到目前为止,我identfied是gitinspector。 它给每星期等每个用户设定的报告,

您可以安装像下面NPM

npm install -g gitinspector

详细信息以获得链接下方

https://www.npmjs.com/package/gitinspector
https://github.com/ejwa/gitinspector/wiki/Documentation
https://github.com/ejwa/gitinspector

示例命令是

gitinspector -lmrTw
gitinspector --since=1-1-2017

等等



Answer 4:

由于黑客的回答这个问题。 然而,我发现这些修改后的版本是我的特定使用更好:

git log --pretty=format:%an \
| awk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'\
| sort -r

(用awk,因为我没有在我的Mac GAWK,并且在顶部最活跃的排序comitter)。它输出像这样的列表:

 1205 therikss
 1026 lsteinth
  771 kmoes
  720 minielse
  507 pagerbak
  269 anjohans
  205 mfoldbje
  188 nstrandb
  133 pmoller
   58 jronn
   10 madjense
    3 nlindhol
    2 shartvig
    2 THERIKSS


Answer 5:

这里有方法来获得统计特定分支或两个hashs。

这里关键是要做到HASH..HASH的能力

下面我使用的第一哈希从一个分支的头,它是分支的末端。

显示在一个分支占所有提交

  • git的日志FIRST_HASH..HEAD --pretty = ONELINE | 厕所-l
  • 输出53

显示每位作者提交总

  • 混帐shortlog FIRST_HASH..HEAD -sne
  • 产量
  • 24作者名称
  • 9作者名称


Answer 6:

需要注意的是, 如果你的回购是在GitHub上 ,你现在(五月2013年)有一组新的GitHub API来获取有趣的统计。
请参阅“ 文件现在API提供的CRUD和存储库统计 ”

这将包括:

  • 贡献者
  • 提交活动
  • 码频
  • 参与
  • 打卡


Answer 7:

我已经写了一个小的shell脚本计算(与基于特征的分支工作流程打交道时非常有用)合并统计。 这里有一个小仓库的输出示例:

[$]> git merge-stats
% of Total Merges               Author  # of Merges  % of Commits
            57.14     Daniel Beardsley            4          5.63
            42.85        James Pearson            3         30.00


Answer 8:

看到这个gitstat项目

http://mirror.celinuxforum.org/gitstat/



Answer 9:

这里是我用来获取作者,加线,删除线,并从git的承诺计数一个简单的Ruby脚本。 它不包括随时间的提交。

请注意,我有它忽略任何承诺,增加了/因为我认为这是某种形式的代码输入,随意修改逻辑为您的需要删除超过1万行的把戏。 你可以把下面的到文件名为gitstats-simple.rb,然后运行

git log --numstat --pretty='%an' | ruby gitstats-simple.rb

gitstats-simple.rb内容

#!/usr/bin/ruby

# takes the output of this on stdin: git log --numstat --prety='%an'

map = Hash.new{|h,k| h[k] = [0,0,0]}
who = nil
memo = nil
STDIN.read.split("\n").each do |line|
  parts = line.split
  next if parts.size == 0
  if parts[0].match(/[a-z]+/)
    if who && memo[0] + memo[1] < 2000
      map[who][0] += memo[0]
      map[who][1] += memo[1]
      map[who][2] += 1
    end
    who = parts[0]
    memo = [0,0]
    next
  end
  if who
    memo[0]+=line[0].to_i
    memo[1]+=parts[1].to_i
  end
end

puts map.to_a.map{|x| [x[0], x[1][0], x[1][1], x[1][2]]}.sort_by{|x| -x[1] - x[2]}.map{|x|x.inspect.gsub("[", "").gsub("]","")}.join("\n")


Answer 10:

DataHero现在可以很容易在Github的数据拉,并得到统计。 我们在内部使用跟踪我们每个里程碑式的进步。

https://datahero.com/partners/github/

我们如何使用它内部: https://datahero.com/blog/2013/08/13/managing-github-projects-with-datahero/

披露:我为DataHero工作



Answer 11:

您可以使用gitlogged宝石( https://github.com/dexcodeinc/gitlogged )来获得由作者和日期的活动。 这会给你汇报如下:

gitlogged 2016-04-25 2016-04-26

它返回下列输出

################################################################

Date: 2016-04-25

Yunan (4):
      fix attachment form for IE (#4407)
      fix (#4406)
      fix merge & indentation attachment form
      fix (#4394) unexpected after edit wo

gilang (1):
      #4404 fix orders cart


################################################################
################################################################

Date: 2016-04-26

Armin Primadi (2):
      Fix document approval logs controller
      Adding git tool to generate summary on what each devs are doing on a given day for reporting purpose

Budi (1):
      remove validation user for Invoice Processing feature

Yunan (3):
      fix attachment in edit mode (#4405) && (#4430)
      fix label attachment on IE (#4407)
      fix void method (#4427)

gilang (2):
      Fix show products list in discussion summary
      #4437 define CApproved_NR status id in order


################################################################


Answer 12:

修改https://stackoverflow.com/a/18797915/3243930 。 输出被多封闭github上的图形数据。

#!/usr/bin/ruby

# takes the output of this on stdin: git log --numstat --prety='%an'

map = Hash.new{|h,k| h[k] = [0,0,0]}
who = nil
memo = nil
STDIN.read.split("\n").each do |line|
  parts = line.split("\t")
  next if parts.size == 0
  if parts[0].match(/[a-zA-Z]+|[^\u0000-\u007F]+/)
    if who
      map[who][0] += memo[0]
      map[who][1] += memo[1]
      if memo[0] > 0 || memo[1] > 0 
        map[who][2] += 1
      end
    end
    who = parts[0]
    memo = [0,0]
    next
  end
  if who
    memo[0]+=parts[0].to_i
    memo[1]+=parts[1].to_i
  end
end

puts map.to_a.map{|x| [x[0], x[1][0], x[1][1], x[1][2]]}.sort_by{|x| -x[1] - x[2]}.map{|x|x.inspect.gsub("[", "").gsub("]","")}.join("\n")


文章来源: Which Git commit stats are easy to pull