热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

git统计每个人的代码行数_程序员实用工具推荐,一款代码统计神器GitStats,从小白到大佬...

阅读全文需7分钟,工具很实用。1.前言对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查
16c00fe6b4b91cf95cfe8d9cfebee694.png

阅读全文需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://http://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

└── test

2 directories, 8 files

4、执行统计命令:

python gitstats.py ../requests ./test

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

7524a8d263f1487e07f791988471d1d5.png

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

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

除此之外,还包括了:

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

3d03cfe1f5c2a1e63de12c178537687d.png
6f8a2801b78a99cabf6ae99acb0ed6f5.png

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

e6cec916eca7131fe964208ce569d2c0.png

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

899ad2905620d72e6c41252dc5592296.png

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

a3acbece82da436e325af700f7f95d3c.png

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

以下下是亲手打造的python学习路线和视频。共分为7大阶段.

获取方式:转发此文+关注 并 私信小编 “ 学习 ”,即可免费获取!

现在免费分享给大家哦!

8408d3d2a0233d6dcff725ff5071ba88.png
df594292f5a4c88a392d0efa4897cfe4.png
  • 设计模式及异常处理
  • 坦克大战
  • 核心编程
  • jquery动画特效
  • Ajax异步网络请求
  • Django-博客项目
  • Django-商城项目
  • 正则表达式
  • Python爬虫基础
  • Python爬虫Scrapy框架

第一阶段、python开发基础和核心特性

7d06e1855a309b998ae599a6302f23a9.png

1.变量及运算符

2.分支及循环

3.循环及字符串

4.列表及嵌套列表

5.字典及项目练习

6.函数的使用

7.递归及文件处理

8.文件

9.面向对象

10.设计模式及异常处理

11.异常及模块的使用

12.坦克大战

13.核心编程

14.高级特性

15.内存管理

第二阶段、数据库和linux基础

2183a0c5e14b39e7ea05e07c4d33ab30.png

1.并发编程

2.网络通信

3.MySQL

4.Linux

5.正则表达式

第三阶段、web前端开发基础

fbfcbe6985f5a232d36e1f07ea179834.png

1.html基本标签

2.css样式

3.css浮动和定位

4.js基础

5.js对象和函数

6.js定时器和DOM

7.js事件响应

8.使用jquery

9.jquery动画特效

10.Ajax异步网络请求

第四阶段、Python Web框架阶段

0843880df58e4f5021be638039a1111b.png

1.Django-Git版本控制

2.Django-博客项目

3.Django-商城项目

4.Django模型层

5.Django入门

6.Django模板层

7.Django视图层

8.Tornado框架

第五阶段、Python 爬虫实战开发

919d74836be6e6340da1874d3a485564.png

1.Python爬虫基础

2.Python爬虫Scrapy框架

以上这python自学教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!

获取方式:转发此文+关注 并 私信小编 “ 学习 ”,即可免费获取!

a91dae79152eb6af111512f88a43e9d6.png
21306f833278fbb8aca5ef18319bc61c.png

希望这篇文章能帮到你!更多干货文章请关注我们。



推荐阅读
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
author-avatar
手机用户2502913853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有