Git如何统计项目代码行数

自己4年里利用闲余时间最近完成的一个入境旅游服务平台项目,基于ThinkPHP前后端自己独立开发,而且已上线很多个站点上应用了,因为吃了某匠商城侵权被他告的亏,因此需要申请软件著作权保护代码,资料里要统计项目代码行数。自己的项目一直是使用gitee平台管理仓库,就想着git可以统计出代码行数。
使用GitBash,即项目文件夹打开后,右键 Git Bash Here
在这里插入图片描述

1. 统计项目内所有代码行数

git log --numstat --summary -- | awk '{add+=$1} END {print add}'

这个命令会统计所有提交的添加行数之和。git log --numstat --summary –
用于显示每个提交的更改行数统计信息,然后使用 awk 命令计算所有提交的添加行数之和,并输出结果。

请注意,这个命令只会统计添加的行数,不会统计删除的行数。如果你需要统计所有更改的行数,可以使用 --stat 参数代替 --numstat。

在代码路径下运行以下指令,可统计出当前仓库中的总代码行数:

git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "已添加行数: %s, 删除行数: %s, 总行数: %s\n", add, subs, loc }'

输出结果:

已添加行数: 2844829, 删除行数: 865653, 总行数: 1979176
  1. 统计一定时间内产生的代码行数
    时间参数,–since:起始时间,–until:终止时间:
git log --since=2019-01-29 --until==2023-08-28 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "已添加行数: %s, 删除行数: %s, total 总行数: %s\n", add, subs, loc }'

输出结果:

已添加行数: 2045225, 删除行数: 865355, total 总行数: 1179870

如果是多人协同开发的话,可以使用以下命令
3. 统计指定开发者一段时间内产生的代码行数

git log --author=<developer> --pretty=tformat: --numstat | awk '{add+=$1} END {print add}'

是你要统计的开发者名称或邮箱地址。
–pretty=tformat: 用于指定日志输出的格式,这里我们使用 tformat: 以减少输出量。
–numstat 用于显示每个提交的更改行数统计信息。 awk ‘{add+=$1} END {print add}’ 用于计算所有提交的添加行数之和。 这个命令的工作原理是先使用 git log 命令列出指定开发者在一段时间内的所有提交,然后使用
–numstat 参数显示每个提交的更改行数统计信息。接着使用 awk 命令计算所有提交的添加行数之和,并输出结果。

注意:这个命令只会统计指定开发者在一段时间内的添加行数,不会统计删除行数。如果你需要统计所有更改的行数,可以使用 --stat 参数代替
–numstat。

要查询的开发者账号名称参数,–author:开发者账号名称。
和时间参数可以同时使用。

git log --since =2019-01-01 --until==2019-12-31 --author="peter" --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 }'

输出结果:

added lines: 11843, removed lines: 2036, total lines: 9807

相关推荐

  1. git统计工程某目录代码总行

    2024-04-10 11:42:06       27 阅读
  2. Git代码统计

    2024-04-10 11:42:06       59 阅读
  3. 字母转换并统计(C语言实现)

    2024-04-10 11:42:06       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 11:42:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 11:42:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 11:42:06       82 阅读
  4. Python语言-面向对象

    2024-04-10 11:42:06       91 阅读

热门阅读

  1. 【C语言】数组越界

    2024-04-10 11:42:06       34 阅读
  2. c#防呆设计

    2024-04-10 11:42:06       37 阅读
  3. uniapp_微信小程序_NaN

    2024-04-10 11:42:06       35 阅读
  4. python中tkinter窗口内替换鼠标图标

    2024-04-10 11:42:06       34 阅读
  5. 【linux】cp命令介绍以及使用范例

    2024-04-10 11:42:06       34 阅读
  6. python——运算符

    2024-04-10 11:42:06       32 阅读