1.背景

在软件开发过程中,代码行数是一个非常重要的指标,可以用来衡量代码的质量和开发效率。Git是一个流行的版本控制系统,它可以记录和跟踪代码的修改历史。通过使用Git,我们可以很容易地统计代码行数。下面是一些常用的Git命令和解释,用于统计代码行数。

2.找到要统计的git commitId信息

查看当前分支的最早提交(即最早的CommitId):git log --reverse <branch-name> | head -1

查看当前分支的最近一次提交:git log <branch-name> | head -1

查看当前分支第一次从master分支开始分叉的位置:git log --reverse HEAD..$(git merge-base HEAD master)

3.校验commitId对应的提交,是否正确

查看指定commitId的提交信息和修改内容: git show ${commitId}

查看某个分支上某个人的第一次提交:git log --reverse <branch-name> --author="null <aa@gmail.com>" | head -1

找到某个提交的前一个提交的commit id:git log --pretty=oneline 0b971fa90bfbbdcae0357a1d6efa4da432d7f0d0^

4.统计代码行数

(1)查询时间范围的提交行数命令

git log [某个分支名] --author="[某个作者]" --since="[起始日期]" --until="[结束日期]" --pretty=tformat: --numstat --pretty="%H"  | awk 'NF==3 {plus+=$1; minus+=$2; total += $1 + $2;} END {printf("%d,%d,%d", plus, minus, total)}'

命令含义

其中 git log 命令用于获取提交历史记录,--author 选项用于指定提交者,--since--until 选项用于指定时间范围。--pretty=tformat: --numstat --pretty="%H" 选项用于输出提交的 commit ID 和新增、删除的行数。最后,awk 命令用于计算行数。

使用demo

git log master --author="test <aa@gmail.com>" --since="2022-12-31" --until="2023-03-31" --pretty=tformat: --numstat --pretty="%H"  | awk 'NF==3 {plus+=$1; minus+=$2; total += $1 + $2;} END {printf("%d,%d,%d", plus, minus, total)}'

(2)查询时间范围、commit范围的提交行数命令

git log [某个分支名] --author="[某个作者]" --since="[起始日期]" --until="[结束日期]" --pretty=tformat: --numstat --pretty="%H" [startCommit]..[endCommit] | awk 'NF==3 {plus+=$1; minus+=$2; total += $1 + $2;} END {printf("%d,%d,%d", plus, minus, total)}'

命令含义

${startCommit}..${endCommit} 表示 commit 范围,即从 startCommitendCommit 的提交历史记录。其他选项和命令与上一个命令类似,最后也用 awk 命令计算行数。

使用demo

git log master --author="test <aa@gmail.com>" --since="2022-12-31" --until="2023-03-31" --pretty=tformat: --numstat --pretty="%H" ${startCommit}..${endCommit} | awk 'NF==3 {plus+=$1; minus+=$2; total += $1 + $2;} END {printf("%d,%d,%d", plus, minus, total)}'

使用git log统计代码行数相关推荐

  1. 【git】Git 指令统计代码行数

    目录 统计代码行数 加过滤条件 统计代码行数 统计当前项目代码行数 git ls-files | xargs cat | wc -l 细分每个文件的代码行数,相当于把上面命令细化: git ls-fi ...

  2. git中统计代码行数

    查看git上个人代码量 git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; su ...

  3. Git统计代码行数;Java实现统计代码行数,忽略空行、注释行

    前言 某天,产品叫我算下某个项目的代码行数,我一愣,这怎么统计?总不可能一个文件一个文件算吧?后面我找了下,git是可以统计提交到仓库的所有的代码的,不过有个问题,就是假如有些文件我不想算进去怎么办? ...

  4. 在项目开发中统计代码行数的6种方式

    文章目录 一.使用find和wc命令统计代码行数 进行参数的过滤筛选 命令参数简要说明 二.PowerShell工具统计代码行数 条件过滤 输出所有文件的行数 PowerShell相关命令的简要说明 ...

  5. git中统计代码提交数

    git中统计代码提交数 通过git log来取 git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5

  6. vscode统计代码行数,前端开发配置、快捷键使用

    1.统计代码行数 使用场景是项目年终统计行数. 实现:在需要统计得文件夹右键"在文件夹中查找" ,后输入筛选得正则表达式 ^b*[^:b#/]+.*$ (注意右边小图标都点亮) 这 ...

  7. linux代码行数统计工具,统计代码行数工具 用golang实现

    首先:修改conf文件,配置要查找什么后缀的文件代码行数 使用方法:countcodeliine filename or nothing(计算可执行程序所在目录) 实现功能: 1,统计代码行数 2,可 ...

  8. webstorm代码行数统计_【Rust每周一库】Tokei 统计代码行数等信息的实用工具

    Tokei是一个按语言统计代码行数等统计信息的工具.其实这些信息还是非常有用的,首先程序猿可以用它来估计别人的实力或者观察自己实力成长的速度(神马,行数论英雄么?).其次,管理人员可以用它来估计工程的 ...

  9. 统计代码行数的方法梳理

    在日常运维工作中,会碰到对一项项目下的代码行数进行统计的需求,下面对代码行数的统计方法进行梳理,以供参考. 1)最简单的是使用wc -l直接进行代码行数统计.(wc的几个参数的解释:-c 统计字节数: ...

最新文章

  1. Windows XP SP3远程桌面连接支持网络级身份验证配置
  2. SSH2+Daoz项目中的分页查询
  3. 三星s2 硬刷Android 8,三星T710(GALAXY Tab S2 8.0)一键救砖教程,轻松刷回官方系统...
  4. Gopher一定要会的代码自动化检查
  5. 【codevs3304】水果姐逛水果店Ⅰ,线段树练习
  6. 节约:我们不应忘记的美德
  7. Go 编码建议——风格篇
  8. NI笔试——大数加法
  9. android 8 推送到tv,手机如何推送文件到电视,三款TV投屏软件亲测推荐!
  10. Python高分辨率图像的分割与合并
  11. keil5.36设置GB2312编码后无法修改字体的解决方法——2022.04.04
  12. 晶体二极管和晶体三极管
  13. Philosopher’s Walk ICPC 2017 Daejeon F dfs 分治
  14. openssl_sign() 语法+RSA公私钥加密解密,非对称加密算法详解
  15. MySQL - 索引的数据结构
  16. Mysql数据库基础及高阶
  17. NS版暗黑破坏神3金手指开发教程(6)
  18. 编程中的命名方式和常用命名名称
  19. iOS毛玻璃磨砂特效
  20. Redis快速入门学习(基于狂神讲解)

热门文章

  1. 计算机网络实验(华为eNSP模拟器)——第十四章 RIP协议和OSPF协议
  2. Nginx配置WS、WSS域名
  3. openresty完全开发指南_谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?...
  4. 零停机给Kubernetes集群节点打系统补丁
  5. 用c语言画一个字母金字塔,(  ) 什么字母似“金字塔”?  A.D     B.A    C.E    D.F ——青夏教育精英家教网——...
  6. 数据库系统概论 关系代数:专门的关系运算
  7. 改成每天晚上锻炼身体
  8. ArcBlock荣获“2018区块链之星”奖项
  9. 【邮政编码识别】基于计算机视觉实现邮政编码识别含Matlab源码
  10. aec java ios_Java並發編程之原子操作類