首页 > 其他分享 >统计git代码行数 git统计代码提交行数

统计git代码行数 git统计代码提交行数

时间:2024-04-08 15:45:54浏览次数:20  
标签:git log -- 代码 提交 pretty 统计 name

项目中遇到写报告的时候要反馈某个人或者某个功能的代码量,可以简单的使用以下命令统计代码提交量,后续可以考虑集成到CI。

--统计某个人的提交代码
git log --author="username" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'

--统计某个人时间范围的提交代码
git log --author="username" --since='2022-02-01' --until='2024-04-08' --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "增加的行数:%s 删除的行数:%s 总行数: %s\n",add,subs,loc }'

查看git上个人代码量
git log --author="username" --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 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

代码总行数:
find . "(" -name "*.java" ")" -print | xargs wc -l

查看仓库提交者排名前 5
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

贡献者统计:
git log --pretty='%aN' | sort -u | wc -l

提交数统计:
git log --oneline | wc -l

统计代码总行数:
find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs grep -v "^$"|wc -l

git log 参数说明:
–author 指定作者
–stat 显示每次更新的文件修改统计信息,会列出具体文件列表
–shortstat 统计每个commit 的文件修改行数,包括增加,删除,但不列出文件列表:
–numstat 统计每个commit 的文件修改行数,包括增加,删除,并列出文件列表:
-p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
例如:git log -p -2

–name-only 仅在提交信息后显示已修改的文件清单
–name-status 显示新增、修改、删除的文件清单
–abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符
–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)
–graph 显示 ASCII 图形表示的分支合并历史
–pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)
例如: git log --pretty=oneline ; git log --pretty=short ; git log --pretty=full ; git log --pretty=fuller

–pretty=tformat: 可以定制要显示的记录格式,这样的输出便于后期编程提取分析
例如:git log --pretty=format:""%h - %an, %ar : %s""

下面列出了常用的格式占位符写法及其代表的意义。
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
–since 限制显示输出的范围,例如: git log --since=2.weeks 显示最近两周的提交

选项 说明
-(n) 仅显示最近的 n 条提交
–since, --after 仅显示指定时间之后的提交。
–until, --before 仅显示指定时间之前的提交。
–author 仅显示指定作者相关的提交。
–committer 仅显示指定提交者相关的提交。

一些例子:

git log --until=1.minute.ago // 一分钟之前的所有 log 
git log --since=1.day.ago //一天之内的log 
git log --since=1.hour.ago //一个小时之内的 log 
git log --since=`.month.ago --until=2.weeks.ago //一个月之前到半个月之前的log 
git  log --since ==2013-08.01 --until=2013-09-07 //某个时间段的 log git blame

看看某一个文件的相关历史记录
例如:git blame index.html --date short

标签:git,log,--,代码,提交,pretty,统计,name
From: https://www.cnblogs.com/yy0901/p/18121332

相关文章

  • DMA第四版代码
    描述:我发现并不是所有的任务都有同步信号,这一期版本使用参数来控制是否需要同步信号;Test_Flow_Mode参数为高的时候意味着需要同步,否则不需要,仅检测数据流。不需要同步的情况如果丢包会出现严重后果。参考这篇笔记:https://www.cnblogs.com/VerweileDoch/p/18111545代码:`tim......
  • 「Mac」gitlab 更新了登录密码后,本地git仓库拉取推送等无法操作,提示无权限了 —— 解
    ​起因:公司git账户与oa账号关联,oa密码修改了,导致git远程密码修改了,本地的项目再做拉取推送时发现拉取不下来了解决办法:1、查看本地git配置cat.gitconfig2、删除git本地信息nano.gitconfig3、Mac应用程序钥匙串访问,找到对应git项,将其删除4、重新配置一下git邮箱、用......
  • (译) 理解 Elixir 中的宏 Macro, 第六部分:原地代码生成
    ElixirMacros系列文章译文[1](译)UnderstandingElixirMacros,Part1Basics[2](译)UnderstandingElixirMacros,Part2-MacroTheory[3](译)UnderstandingElixirMacros,Part3-GettingintotheAST[4](译)UnderstandingElixirMacros,Part4-Div......
  • Github图床 Python Typora
    1.搭建Github图床1.1.创建或者选择一个Public仓库1.2.获取GithubToken2.Typora结合图床当Typora需要使用这个图床的时候,Picgo是很好的解决方案,但是还可以通过其他的方式来进行上传,比如python脚本。2.1.upload-img.pyimportrequestsimportbase64importj......
  • R语言生物群落(生态)数据统计分析与绘图
    暨融合《R语言基础》、《tidyverse数据清洗》、《多元统计分析》、《随机森林模型》、《回归及混合效应模型》、《结构方程模型》、《统计结果作图》七合一版本R语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂,涉及众多统计分析......
  • 题目 1035: [编程入门]自定义函数之字符类型统计
    一、题目 题目描述编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。输入格式一行字符串输出格式统计数据,4个数字,空格分开。样例输入!@#$%^QWERT   1234567......
  • 【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)
    ......
  • 【对接方案】低代码对接微信公众号自动回复消息
    前言相信大家都有关注过不少微信公众号,其中有很多微信公众号提供了自动回复消息的功能,用户给微信公众号发送消息时,微信公众号会自动回复对应的消息,比如下图:接下来,小编就为大家介绍一下如何使用葡萄城公司的企业级低代码开发平台——活字格实现微信公众号自动回复消息。环境准......
  • 如何使用Git和GitHub - 初学者和有经验开发者的指南
    欢迎来到初学者的Git和GitHub!这份综合指南旨在帮助您探索版本控制和协作的世界。无论您是刚开始的新手还是经验丰富的开发者想要提升技能,这个指南都提供了逐步的方法来理解和有效使用Git和GitHub。通过本次旅程,您将建立起对Git和GitHub的坚实基础。您将具备实用知识,以简化您的编......
  • 模型代码理解本地知识库
    importosfromlangchain.chainsimportRetrievalQAfromlangchain_community.document_loadersimportTextLoaderfromlangchain_community.embeddingsimportOllamaEmbeddingsfromlangchain_community.llms.ollamaimportOllamafromlangchain_community.vectors......