当前位置: 首页 > 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

相关文章:

git代码行统计

本文介绍统计项目代码行的方式,包括使用git log统计、git ls-files统计和使用linux命令行方式统计。 一、使用git log统计 1.统计所有代码行数 当前代码都存放在git仓库下,当需进行代码行数统计时,让开发人员在代码路径下运行如下指令&…...

LEEDCODE 2235两整数相加

class Solution { public:int sum(int num1, int num2) {return (num1 num2);} };...

魔术般的速度,焕然一新的磁盘空间 - Magic Disk Cleaner for Mac 2023

在当今这个信息时代,我们的磁盘空间无时无刻不在被各种文件和数据所填满。无论是工作文件,还是日常生活的照片、视频,亦或是下载的各种应用程序,都在不断地蚕食着我们的磁盘空间。面对这种情况,一款高效、便捷的磁盘垃…...

项目切换多租户导致的数据库SQL执行异常

先贴异常日志 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(D…...

安防视频监控平台EasyCVR服务器需要开启firewalld防火墙,该如何开放端口?

智能视频监控/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上&…...

Ubuntu Desktop 20.04升级gcc-11

默认自带的gcc是9,需要升级到11 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install gcc-11 sudo apt install g11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 sudo update-alternatives -…...

网站如何改成HTTPS访问

在今天的互联网环境中,将网站更改成HTTPS访问已经成为了一种标准做法。HTTPS不仅有助于提高网站的安全性,还可以提高搜索引擎排名,并增强用户信任。因此,转换为HTTPS是一个重要的举措,无论您拥有个人博客、电子商务网站…...

LeetCode 996.正方形数组的数目

和上一道状压的区别在于我们要去重一下~ 思路都是和上一篇博客是一样的&#xff0c;感兴趣的同学可以看一下 const int N 15; int dp[1<<N][N]; int n; vector<int>nums1;bool check(int x){int tem sqrt(x);if(tem*temx)return 1;return 0; }int dfs(int u,in…...

vue3写nav滚动事件中悬停在顶部

1. 防抖类Animate, 使用requestAnimationFrame代替setTimeout 也可以使用节流函数, lodash有现成的防抖和节流方法 _.debounce防抖 _.throttle节流 export default class Animate {constructor() {this.timer null;}start (fn) > {if (!fn) {throw new Error(需要执行…...

关于qiling->UC_ERR_FETCH_UNMAPPED等执行EXE时内存错误的问题

该文章遇到的问题简述&#xff1a; 使用wsl虚拟机&#xff0c;正常走了qiling配置流程后无法使用qiling对样例之外的exe进行模拟&#xff0c;会在执行到dll时&#xff0c;在dll的代码中报出内存未分配等读写错误。系统&#xff1a;kali、ubuntu20、ubuntu22。 解决&#xff1…...

语言模型和人类的推理都依赖内容

人类不太擅长逻辑&#xff0c;需要依赖内容直觉进行推理。许多认知研究表明&#xff0c;人类的推理并不是完全抽象的&#xff08;不是完全的形式与内容分离&#xff09;。 相反&#xff0c;我们的推理取决于问题的内容&#xff1a; 当内容支持逻辑推理时&#xff0c;我们回答…...

5.1 运输层协议概述

思维导图&#xff1a; 前言&#xff1a; 第5章 运输层笔记 1. 概览 主要内容&#xff1a;介绍运输层协议的特点、进程间通信、端口、UDP和TCP协议、可靠传输、TCP报文段的首部格式、TCP的关键概念&#xff08;如滑动窗口、流量控制、拥塞控制和连接管理&#xff09;。重要性…...

Jmeter保存csv数据文件出现乱码

在Jmeter的聚合报告中&#xff0c;点击“Save Table Data”&#xff0c;打开保存的CSV文件中文出现乱码。这是因为CSV文件的格式不是UTF-8导致。 解决办法如下&#xff1a; 方法&#xff1a;使用记事本打开csv文件(打开方式选择记事本)&#xff0c;点击左上角菜单“文件-》另存…...

双闭环直流电机调速系统设计

要 在我们日常生活中&#xff0c;无刷直流电机随处可见&#xff0c;因为其相比其他电机而言结构相对简单&#xff0c;运行稳定且便于维修等优势&#xff0c;最重要的是直流电机在调速方面具有很好的优势。随着自动控制技术和微电子技术的不断革新&#xff0c;目前的技术水平为…...

[ poi-表格导出 ] java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader

解决报错&#xff1a; org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错描述&#xff1a; 表格导出本来使用正常&#xff0c;偶然就报了以上错误…...

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…...

闭环思维笔记

这本书的情况我已经看完了&#xff0c;道理方面还是不错的&#xff0c;但案例方面跟我前几年在抖音看到的畅销书的案例一样&#xff0c;答辩&#xff0c;所以要看的人一定要根据不同的情况和场景去实施。 闭环思维的核心就是有始、有终、有反馈&#xff0c;在开始和结束过程中前…...

JMeter如何开展性能测试

文章目录 性能测试指标理解透彻以及测算微聊性能测试性能测试流程准备流程 ​&#x1f451;作者主页&#xff1a;Java冰激凌 性能测试指标理解透彻以及测算 虚拟用户数&#xff1a; 线程 用户并发数&#xff1a;指在某一时间&#xff0c;一定数量的虚拟用户同时对系统的某个功…...

使用logback按天生成日志并按等级进行分类

先看效果---->>>> 按照&#xff1a;error、info、warn进行分类&#xff1a; 每个文件里面按日期进行分类&#xff1a; 其中对应的Maven如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…...

【Linux】Linux项目部署及更改访问端口号和jdk、tomcat、MySQL环境搭建的配置安装

目录 一、作用 二、配置 1、上传安装包 2、jdk 2.1、解压对应安装包 2.2、环境变量搭建 3、tomcat 3.1、解压对应安装包 3.2、启动 3.3、设置防火墙 3.4、设置开发端口 4、MySQL 三、后端部署 四、Linux部署项目 1、单体项目 五、修改端口访问 1、进入目录 2…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...