当前位置: 首页 > news >正文

git代码行统计

本文介绍统计项目代码行的方式,包括使用git log统计、git ls-files统计和使用linux命令行方式统计。

一、使用git log统计

1.统计所有代码行数

当前代码都存放在git仓库下,当需进行代码行数统计时,让开发人员在代码路径下运行如下指令,可统计出当前仓库中的代码行数:

 git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

2.统计一定时间内产生的代码行数

此处提供时间参数执行方式,`--since`:起始时间,`--until`:终止时间:

--since = 2019-01-01

--until == 2019-12-31

git log --since=2019-01-01 --until==2019-12-31 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

3.统计指定开发者一段时间内产生的代码行数

此处提供指定开发者执行方式,和时间参数可以同时使用,`–author`:开发者账号名称:

git log --since =2019-01-01 --until==2019-12-31 --author="kaizen" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

4.统计个人提交次数(前10)

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 10

5.按人统计代码量

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

6.统计指定文件类型的行数

find . "(" -name "*.java" -or -name "*.xml" -or -name "*.yml" -or -name "*.properties" ")" -print | xargs wc -l

7.统计所有行数

git log --pretty=tformat: --numstat | awk '{

 add += $1; subs += $2; loc += $1 - $2 } END {

printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

二、使用git ls-files统计

统计行数

git ls-files | xargs cat | wc -l

上面两个命令只统计行数,没有细分到文件,下面这个命令是会把每个文件都列出来,并统计每个文件的行数。

git ls-files | xargs wc -l

三、使用linux 命令统计

计算当前目录下前端、后端文件的总行数

find . -type f |egrep "\.(java|xml|vue|js|jsp|css|scss|html|json)$" | xargs cat | wc -l


计算当前目录下(排除 ./.idea、./.git 目录)各类文件的总行数

find . ! -path './.idea*' ! -path './.git*' -type f |egrep "\.(java|xml|vue|js|jsp|css|scss|html|json)$" | xargs cat | wc -l

http://www.lryc.cn/news/215291.html

相关文章:

  • LEEDCODE 2235两整数相加
  • 魔术般的速度,焕然一新的磁盘空间 - Magic Disk Cleaner for Mac 2023
  • 项目切换多租户导致的数据库SQL执行异常
  • 安防视频监控平台EasyCVR服务器需要开启firewalld防火墙,该如何开放端口?
  • Ubuntu Desktop 20.04升级gcc-11
  • 网站如何改成HTTPS访问
  • LeetCode 996.正方形数组的数目
  • vue3写nav滚动事件中悬停在顶部
  • 关于qiling->UC_ERR_FETCH_UNMAPPED等执行EXE时内存错误的问题
  • 语言模型和人类的推理都依赖内容
  • 5.1 运输层协议概述
  • Jmeter保存csv数据文件出现乱码
  • 双闭环直流电机调速系统设计
  • [ poi-表格导出 ] java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
  • 基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序
  • 闭环思维笔记
  • JMeter如何开展性能测试
  • 使用logback按天生成日志并按等级进行分类
  • 【Linux】Linux项目部署及更改访问端口号和jdk、tomcat、MySQL环境搭建的配置安装
  • Pytorch 注意力机制解析与代码实现
  • Python上下文管理:with语句执行原理
  • Mac-Java开发环境安装(JDK和Maven)
  • mac下的vscode配置编译环境
  • 洗衣洗鞋柜洗衣洗鞋小程序
  • vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go
  • LeetCode热题100 240.搜索二维矩阵||
  • Anaconda安装及使用教程
  • 动态规划算法实现------转换(编辑、变换)问题
  • C#使用Oracle.ManagedDataAccess.dll
  • 分享88个工作总结PPT,总有一款适合您