阅读全文需7分钟,工具很实用。

1. 前言

对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史。但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发历史,一些定量的统计数据(如每日提交量,行数等)更能反映项目的开发进程和活跃性。今天给大家推荐的这款工具:GitStats,它能生成如下的一些统计数据,并且可以图表形式进行展示对比。

2. 进一步了解Gitstats

进一步来讲,Gitstats它是一个git仓库分析软件,它可以检查仓库并生成历史数据的统计信息。可以帮助你查看git仓库的提交状态,根据不同维度分析计算,并自动生成数据图表。

官网介绍:http://gitstats.sourceforge.net/

当前GitStats所生成统计信息常用分为如下几类:

  • 常规的统计:文件总数,行数,提交量,作者数。
  • 活跃性:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。
  • 作者数:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。
  • 文件数:按日期划分,按扩展名名划分。
  • 行数:按日期划分。

3. 命令行安装

安装使用非常简单,如果是ubuntu,直接apt-get 即可,下面介绍几款不同操作系统下的安装方式。

Ubuntu:

apt-get install gitstats

CentOS:

yum install gitstats

Mac:

brew install --HEAD homebrew/head-only/gitstats

如果是Mac,那还得装个gnuPlot,GitStats在Windows下使用时需要安装有Python、Git,Gnuplot。

  • Python:GitStats本身就是一个python脚本,windows下我们需要用python命令来运行GitStats。
  • Git:这个不用解释也知道是必须的。
  • Gnuplot:Gnuplot一个命令行的交互式绘图工具。

4. 源码安装及使用

打开gitbash或者其他git客户端,输入如下命令:

git clone git://github.com/hoxu/gitstats.git

下载完成后,进入gitstats目录,将gitstats拷贝为gitstats.py文件

$ cp gitstats gitstats.py

然后执行统计命令

$ python gitstats.py ../xxx_pro/ ./test

  • ../xxx_pro/ 为工程所在目录。
  • ./test 为结果文件目录。
  • 完成后,进入test目录,双击index.html文件查看统计结果。

5. 具体实操

为了便于读者能直观感受到,下面通过具体实操,带大家来领略gitstats的作用,以Requests项目为例。

1、下载克隆Requests源码到本地。

git clone https://github.com/psf/requests.git

2、进入到gitstats目录,并将gitstats拷贝为gitstats.py文件,参考上述第4小节介绍。

cp gitstats gitstats.py

3、查看gitstats目录结构

➜  gitstats git:(master) ✗ tree -L 1
.
├── Makefile
├── arrow-down.gif
├── arrow-none.gif
├── arrow-up.gif
├── doc
├── gitstats
├── gitstats.css
├── gitstats.py
├── sortable.js
└── test2 directories, 8 files

4、执行统计命令:

python gitstats.py ../requests ./test

5、统计执行结束后,在本地生成了test结果目录,目录生成的文件结构如下所示。

打开index.html报告,如下图所示。首先,在gitstats上提供了全局的统计数据报告,包括:

  • 报告产生时间及产生所花费的时间:如花费了11秒
  • 报告所覆盖的时间:如2011年02月14日至2019年11月23日
  • 年龄:该repo的年纪,如“3206天,其中1400天是活跃天.”
  • 文件数及代码:如:101个文件,2万5千行代码。
  • 作者数:如645,每个作者平均提交次数9.2次。

除此之外,还包括了:

1. 时间维度的效率分析:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。

2. 提交者维度的活跃度统计:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。

3. 按照文件数:按日期划分,按扩展名名划分。

4. 根据提交行数或提交的tag来统计。

如果你是团队领导,关心团队的开发效率和工作激情;如果你是开源软件开发者,维护者某个repo;又或者,你关心某个开源软件或者当前开发团队的进度,那么你可以试一试gitstats。

点击可查看原文,希望这篇文章能帮到你!更多干货文章请关注我们。

原文发表于公众号:【测试开发技术】,欢迎关注我我们!

git统计每个人的代码行数_程序员实用工具,推荐一款代码统计神器GitStats相关推荐

  1. idea 查询项目代码行数_程序员的福利,四个技巧,让OneNote支持代码高亮

    点击蓝字 关注我们 写在前面 对于程序员来说,代码高亮是最基本的需求. 印象笔记.有道云笔记.为知笔记都提供了相应的功能. 而OneNote,沿袭了微软"术业有专攻"的理念,并没有 ...

  2. webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具

    Tokei是一个按语言统计代码行数等统计信息的工具.其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?).其次,管理人员可以用它来估计工程的 ...

  3. 公司KPI考核代码行数,程序员神操作:10行变500行!

    "如果你无法度量,就无法管理." 这年头,谁都逃不过被KPI支配的恐惧. KPI,俗称绩效,全称关键绩效指标,也是领导口中常说的"小目标",往往"领导 ...

  4. 统计java代码行数_统计项目代码行数

    今天测试告知需要项目的代码行数,项目怎么也有十万左右的代码行数,想想就想奔溃了, Eclipse一定有这方面的统计,应该也有统计工具,于是上网查了一番,果然找到了. 1.我要查询的文件类型为*.xml ...

  5. 统计代码行数_推荐一波代码量、行数、提交量、作者等全维度统计神器

    背景 代码各种维度的统计在有些时候是很重要的,这里总结一些常用的牛逼的代码统计工具,着重介绍了个人使用的 Statistic 插件.但是如果你是想统计团队维度的数据,推荐后面介绍的 git_stats ...

  6. c++ 不要节约代码行数_不要只是代码,但也c

    c++ 不要节约代码行数 程序员的生活 (Programmers' Life) I owe my passion for coding to a very dear friend of mine, w ...

  7. git统计每个人的代码行数_项目出了bug如何甩锅?使用这个Git工具帮你找到元凶...

    公众号关注 "程序员遇见GitHub" 设为"星标",重磅干货,第一时间送达. 作为程序员,在职场当中经常遇到出现了问题需要定职定责的情况.比如某个系统出现了b ...

  8. pycharm 查看代码行数_【收藏】提高PyCharm效率的10个小技巧

    PyCharm是最常用的python开发IDE,程序员可以通过PyCharm强大的功能节约大量时间用来 摸鱼 工作,提高生产效率. 阿狗总结了10个自己会用到的PyCharm中可以提高撸码效率的小技巧 ...

  9. java压测请求线程数_程序员撕开京东 618 大促压测的另一面 | 原力计划

    作者 | 天涯泪小武 责编 | 王晓曼 出品 | CSDN博客 前天618大促演练进行了全链路压测,在此之前刚好我的热key探测框架也已经上线灰度一周了,小范围上线了几千台服务器,每秒大概接收几千个k ...

最新文章

  1. 【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战
  2. 麻省理工人工智能实验室发现更小更容易训练的神经网络
  3. [Android] 开发第六天
  4. Find First and Last Position of Element in Sorted Array
  5. HTTP系列之:HTTP缓存
  6. 仿Jquery链式操作的xml操作类
  7. 玩转微服务日志框架Logback
  8. deep learning 深度学习中英文版下载地址
  9. 使用putty连接本地VirtualBox上的centos7 linux主机
  10. 深度学习2.0-7.tensorflow的高阶操作之数据统计
  11. 数理逻辑习题集(6)
  12. LDA模型理解(一)
  13. 【Js】JavaScript数据类型隐式转换
  14. 全市场等权中位数_市场指数估值周报20200523
  15. 2020中国汽车后市场白皮书
  16. Mac系统如何关闭指定端口号
  17. 前端面试总结以及面试题
  18. Graylog服务器rpm安装
  19. QQ音乐for Mac 已经登陆MAC OSX
  20. php 什么是占位符,php中的占位符

热门文章

  1. c3p0与dbcp的异同
  2. python requests urlencode_关于requests的urlencode问题
  3. c 语言 循环判断语句,C值循环语句(七)
  4. mysql测试事务_MySQL事务测试
  5. 仿土豆网显示隐藏遮罩案例(HTML、CSS)
  6. Mysql中有哪些数据类型(建议收藏)
  7. vue启动项目报错 Couldn‘t find preset “es2015“ relative to directory
  8. PCL之常用开源数据集汇总
  9. 硬核干货!揭秘波士顿动力背后的专利技术
  10. DevExpress v17.2新版亮点——XAF篇