You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何统计Git仓库一年内(2020年1-12月)新增与删除代码总行数

嘿,这个问题我太熟悉了!Git自带的日志统计功能就能轻松搞定代码增删行数的统计,下面分两种场景给你一步步说明:

统计Git仓库代码增删行数的实用方法

一、统计过去一年内的代码新增/删除总行数

你可以直接用git log结合时间筛选和文本处理工具来汇总数据,执行下面的命令就行:

git log --since="1 year ago" --until="today" --shortstat | awk '{added += $4; deleted += $6} END {print "总新增行数: " added "\n总删除行数: " deleted}'

命令拆解:

  • --since="1 year ago" --until="today":限定统计的时间范围是从一年前到今天
  • --shortstat:让Git只输出每个提交的精简统计信息(格式是「X files changed, Y insertions(+), Z deletions(-)」)
  • awk:用来遍历所有提交的统计行,自动累加新增行数($4)和删除行数($6),最后输出总和

二、统计2020年1月至12月的代码增删行数

1. 全年总行数统计

只需要调整时间范围参数,把--since--until改成2020年的起止日期:

git log --since="2020-01-01" --until="2020-12-31" --shortstat | awk '{added += $4; deleted += $6} END {print "2020年总新增行数: " added "\n2020年总删除行数: " deleted}'

2. 每月细分统计

如果需要看2020年每个月的具体数据,可以用一个简单的shell循环脚本,自动遍历每个月的时间范围:

for month in {1..12}; do
  # 构建当月的起始日期
  start="2020-$month-01"
  # 构建当月的结束日期(下个月的第一天)
  if [ $month -eq 12 ]; then
    end="2021-01-01"
  else
    end="2020-$(($month+1))-01"
  fi
  echo "=== 2020年$month月代码统计 ==="
  git log --since="$start" --until="$end" --shortstat | awk '{added += $4; deleted += $6} END {print "新增行数: " added " | 删除行数: " deleted}'
done

进阶技巧:排除特定文件/目录

如果你的仓库里有不需要统计的文件(比如日志、自动生成的配置文件),可以在命令末尾加上路径筛选规则,比如排除所有.log文件和config目录下的.json文件:

git log --since="2020-01-01" --until="2020-12-31" --shortstat -- . ':!*.log' ':!config/*.json' | awk '{added += $4; deleted += $6} END {print "2020年总新增行数: " added "\n2020年总删除行数: " deleted}'

注意事项

  • 执行命令前,记得先切换到目标仓库的本地目录,并且用git pull拉取最新的提交,确保统计数据完整
  • 如果要统计特定分支的代码,先通过git checkout <分支名>切换到对应分支再执行命令

内容的提问来源于stack exchange,提问作者Maria

火山引擎 最新活动