You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算本地文件与GitLab远程版本的变更行数并生成代码churn报告?

我来帮你搞定这份代码churn报告!针对你的三个服务目录,我们可以用Git自带的命令轻松统计变更行数,还能整理成清晰的报告文件,下面是具体步骤:

生成代码Churn变更报告的实操方案

步骤1:切换到项目根目录

先打开命令行(CMD或PowerShell),切换到你的服务目录根路径:

cd C:\dev_ws\helloApp\services

步骤2:逐个服务统计变更详情

针对每个服务目录,用git diff对比本地版本和GitLab远程分支(假设你要对比的是main分支,可根据实际分支名调整):

统计ServiceA

cd ServiceA
# 查看文件级别的变更概览
git diff origin/main --stat --shortstat
# 查看每行的新增/删除行数详情
git diff origin/main --numstat
cd ..

统计ServiceB

cd ServiceB
git diff origin/main --stat --shortstat
git diff origin/main --numstat
cd ..

统计ServiceC

cd ServiceC
git diff origin/main --stat --shortstat
git diff origin/main --numstat
cd ..

步骤3:一键汇总所有服务的总行数

不想逐个目录切换?直接在services目录下运行这条命令,就能自动统计三个服务的总变更行数:

git diff origin/main --numstat ServiceA/ ServiceB/ ServiceC/ | awk '{add += $1; del += $2} END {print "总新增行数: " add "\n总删除行数: " del "\n总变更行数: " add+del}'

这里的awk命令会自动把所有文件的新增、删除行数累加,直接输出总数。

步骤4:生成格式化的Markdown报告

把统计结果输出到一个报告文件里,方便后续查看和分享:

echo "# 代码Churn变更报告" > code_churn_report.md
echo "## 统计时间: $(date)" >> code_churn_report.md
echo -e "\n### 各服务变更详情" >> code_churn_report.md
git diff origin/main --stat ServiceA/ ServiceB/ ServiceC/ >> code_churn_report.md
echo -e "\n### 总行数统计" >> code_churn_report.md
git diff origin/main --numstat ServiceA/ ServiceB/ ServiceC/ | awk '{add += $1; del += $2} END {print "总新增行数: " add "\n总删除行数: " del "\n总变更行数: " add+del}' >> code_churn_report.md

运行完成后,你会在services目录下得到一份code_churn_report.md,里面包含了所有统计信息。

小提醒

  • 如果你的远程分支不是main,记得把命令里的origin/main改成实际的分支名(比如origin/develop)。
  • 如果只想统计特定类型的文件(比如.java或.py),可以在命令最后加上筛选条件,比如-- *.java。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:45:05