Git 提供了多种方式来查看代码变更的行数统计,包括新增行数和删除行数。以下是几种常用的方法:
![图片[1]_Git 查看提交行数和删除行数_知途无界](https://zhituwujie.com/wp-content/uploads/2025/06/d2b5ca33bd20250602113017.png)
1. 使用 git log 结合 --stat 或 --shortstat
查看最近提交的行数统计
git log --stat
这会显示每个提交的详细变更统计,包括每个文件的新增和删除行数。
只查看简略统计(提交次数、新增行数、删除行数)
git log --shortstat
输出示例:
3 files changed, 45 insertions(+), 12 deletions(-)
查看特定时间范围内的提交统计
git log --since="2023-01-01" --until="2023-12-31" --shortstat
2. 使用 git log 结合 --numstat
--numstat 会提供更详细的行数统计,包括每个文件的新增和删除行数:
git log --numstat
输出示例:
1 0 src/main/java/com/example/MyClass.java
2 1 src/test/java/com/example/MyTest.java
这表示:
- 第一行:
src/main/java/com/example/MyClass.java文件新增了1行,删除了0行 - 第二行:
src/test/java/com/example/MyTest.java文件新增了2行,删除了1行
3. 使用 git diff 查看特定提交的行数统计
查看最近一次提交的行数统计
git diff --stat HEAD^ HEAD
或者使用简略统计:
git diff --shortstat HEAD^ HEAD
查看两个提交之间的行数统计
git diff --stat <commit1> <commit2>
例如:
git diff --stat abc123 def456
4. 使用 git log 结合 --pretty=format 和 --numstat 进行自定义统计
可以结合使用这些选项来生成自定义的统计报告:
git log --numstat --pretty=format:"%h - %an, %ar : %s" | awk 'NF==3 {plus+=$1; minus+=$2} NF==1 {printf "%s: +%d, -%d\n", $0, plus, minus; plus=0; minus=0}'
这会输出每个提交的新增和删除行数统计。
5. 使用第三方工具
git-extras 的 git summary 命令
如果你安装了 git-extras,可以使用 git summary 命令:
git summary
这会显示每个开发者的提交统计,包括新增和删除行数。
cloc (Count Lines of Code)
虽然不是Git专用工具,但可以结合Git使用来统计代码行数:
git ls-files | xargs cloc
这会统计当前工作目录中所有被Git跟踪的文件的代码行数。
6. 查看特定作者的提交行数统计
git log --author="Author Name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "Added: %s, Removed: %s\n", add, subs }'
将 “Author Name” 替换为实际的作者名。
7. 查看特定文件的行数变更
git log --numstat --follow -- <file-path>
例如:
git log --numstat --follow -- src/main/java/com/example/MyClass.java
这会显示该文件的所有变更历史中的行数统计。
总结
- 快速查看最近提交的行数统计:
git log --shortstat - 查看每个文件的详细行数变更:
git log --numstat - 查看特定提交之间的行数统计:
git diff --stat <commit1> <commit2> - 自定义统计报告:结合
--numstat和awk进行自定义统计 - 第三方工具:如
git-extras或cloc可以提供更丰富的统计功能
这些命令可以帮助你了解代码库的变更情况,特别是在代码审查、项目评估或个人贡献统计时非常有用。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END

























暂无评论内容