在工作中,我想统计各开发人员,在一定日期范围内的编码情况,故有了此脚本。

一、先贴图,看看效果:

此图中,用“开发者姓名”代替了实际项目中git的账号名称,输出结果按提交次数倒序输出。

二、接下来,贴脚本代码,该脚本是shell脚本,主要用到了git,awk两个命令:

#!/bin/sh
# author:xjf
# date: 2020-9-11
# desc: 统计代码量# git目录
dir_list="project1 project2"# 创建统计表
commit_file="commit.txt";
if [ -f $commit_file ]; thenrm $commit_file
fi
touch $commit_file# 循环目录
for dir in $dir_list
doecho "project:$dir"cd $dirif [ $? -eq 0 ]; then# 同步代码git pull >/dev/null# 统计代码信息git log --pretty=format:%H,%ai,%an,%s --no-merges --since=$1 --until=$2 --numstat |awk -F, 'BEGIN{hash="";author=""; date="";comment="";}{if (NF>=4) {gsub(/ /,"_",$0);hash=$1; date=substr($2,1,19); author=$3; comment=$4;} else if (NF>0) print hash"t" date "t" author"t" comment "t" $0;}' |awk '{hash[$1] = $1; author[$1] = $3; date[$1] = $2; comment[$1] = $4; file[$1] += 1; add[$1] += $5; del[$1] += $6; fileName[$1] = fileName[$1]","$7} END{for (i in hash) {printf "%s t %s t %s t %s t %d t %d t %d n",hash[i],author[i],comment[i],date[i],add[i],del[i],file[i]}}' >> ../$commit_file;#返回上级目录cd ..fi
done# 输出结果
echo "-----------------------------------"
awk 'BEGIN{printf "开发者t提交次数t新增代码行数t删除代码行数t改动文件数n"}'
awk '{author[$2] = $2; commit[$2] += 1; add[$2] += $5; del[$2] += $6; file[$2] += $7;}END{for (i in author){ printf "%st%dt%dt%dt%dn",author[i],commit[i],add[i],del[i],file[i]}}' $commit_file | sort -k 2 -n -r ;

以上代码,有一处需要修改为自己的信息:dir_list修改为自己的项目主目录名称,用空格隔开。

三、创建自己的脚本文件:

在自己项目的根目录里创建可执行文件,如 get_statistic_commit.sh,并给予执行权限(chmod u+x get_statistic_commit.sh),将以上脚本的内容写到该文件中。

四、执行脚本:

执行脚本时,有两个参数:起始日期、结束日期,执行的命令如下:

$ ./get_statistic_commit.sh 2020-09-01 2020-09-30

说明:git log命令的参数--since会使用第一个日期参数,本例中为2020-09-01,但由于--since参数统计git代码时,并不包括指定日期,即2020-09-01当天的代码并不会统计进来,故起始日期应该写成前一天的日期。

五、执行环境:

该脚本可在linux环境下执行,前提是需安装git。也可以在win平台中执行,前提是安装git.exe。

本示例中使用的是git.exe:

写在最后,望各位大佬多多指正、交流,共同学习、进步。

cd返回上一 git_git统计代码量脚本相关推荐

  1. 统计代码量-代码统计工具 CLOC | gitlab统计代码量

    文章目录 一.代码统计工具 CLOC 什么是CLOC? 下载安装 clocs使用 二.gitlab统计代码量 命令行统计 图形化统计 IDE Statistic统计代码插件 一.代码统计工具 CLOC ...

  2. Python_EasyGui图形化的安装,配置窗口,简单实战(登录界面,猜数字游戏,模拟记事本,统计代码量)

    文章目录 1.EasyGui的安装 pip安装(python 3.7版本及其之前版本): python 3.7以上版本 手动安装: 2.EasyGui简单使用 窗口属性修改 3.简单实战 窗口猜数字游 ...

  3. git命令统计代码量

    git命令统计代码量 命令行 git log --since=2020-07-01 --until=2020-07-31 --pretty=tformat: --numstat | awk '{ ad ...

  4. GitHub统计代码量

    1. 统计某人提交的代码量 git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; ...

  5. Linux统计代码量命令cloc

    记录一下Linux中一个非常好用的代码量统计命令:cloc 安装步骤: sudo apt-get install cloc 使用方法: 进入到要统计的工程根目录: cloc . 运行结果:

  6. Linux cd 返回上一级/根目录

    返回上一级目录 cd .. 返回根目录 cd /

  7. eclipse 统计代码量,统计代码行数

    ①.在Eclipse 中打开搜索(快捷键Ctrl+H) ②.选择文件搜索:Search->File ③.在下面的'包含文字'框中输入: ^.*$ ,勾选 '正则表达式' 复选框: 然后在 文件名 ...

  8. 百度统计代码怎么开通,百度统计代码如何获取?怎么在网站上添加百度统计代码?

    怎么开通百度统计代码呢?百度统计可以很好的帮助站长分析网站流量动态.百度统计代码获取有两种不同方式.一种是第一次开通百度统计代码,另一种是在额外添加网站百度统计代码.下面我就来说下百度统计代码怎么开通 ...

  9. python+selenium统计CSDN博客(上):统计阅读量

    由于CSDN改版,本文有些过时,请移步Python玩转CSDN,用selenium统计博客的阅读量 这个功能是比较容易实现的,按理说一个人的所有文章都在博客主页,每篇文章的标题大致如下 <div ...

最新文章

  1. SQL应用中级指南 Part4:(数据字典)
  2. 线刷一加5t android 9,一加5/5T 氢OS 9.0稳定四版 侧边工具 通知特效 Magisk 极速流畅 简约实用-刷机之家...
  3. python项目超级大脑-python项目之超级大脑
  4. codeforces 贪心+优先队列_算法与数据结构基础 - 堆(Heap)和优先级队列(Priority Queue)...
  5. springboot 使用interceptor 返回前端http状态码为0
  6. [蓝桥杯]ALGO-188.算法训练_P0504
  7. 点击开启此虚拟机时,出现“该虚拟机似乎正在使用中”问题
  8. 最优化学习笔记(十六)——拟牛顿法(2)
  9. Bootstrap 排版引用
  10. 观察者模式(Head First设计模式学习2)
  11. 关天asp.net ajax beta中在updatepnael中注册脚本的解决方案
  12. LOCK - 明确地锁定一个表
  13. bzoj 1052: [HAOI2007]覆盖问题(二分+贪心)
  14. 如何获取客户端MAC地址(三个方法)
  15. 树莓派模拟电路_基于树莓派的热电偶测量模块 MCC 134
  16. VAssistX给注释中文带来红色下划线可以去掉
  17. 上百套HTML5登录页面模板
  18. 计算机初始化,怎么初始化电脑 电脑要如何初始化教程
  19. 矩阵减法c语言程序,矩阵的加减法
  20. 你想成为什么样的人取决于你付出了多少?

热门文章

  1. 【数学建模】MATLAB应用实战系列(九十二)-教你怎么挑对象,层次分析法应用案例(附MATLAB代码)
  2. 深度学习核心技术精讲100篇(二十八)-由浅入深概览机器学习优化算法
  3. Matlab中常用希腊字母表查询
  4. php连接redis报错,PHP使用phpredis链接redis错误
  5. 新手入门深度学习 | 1-2:编译器Jupyter Notebook
  6. 阿里巴巴机器学习系列课程
  7. 【LeetCode从零单排】No19.RemoveNthNodeFromEndofList
  8. 如何制作并更改项目icon文件
  9. 从flink-example分析flink组件(3)WordCount 流式实战及源码分析
  10. JBoss EAP6/AS7/WildFly: How to Use Properties Files Outside Your Archive--reference