这篇文章主要介绍了git log根据特定条件查询日志并统计修改的代码行数。前言随着年龄的增长和知识的积累,最近常常有种豁然开朗的感觉,或者对一个已经存在的事物突然有了新的认识。想要统计就得有数据源,而 git log 命令恰恰就能提供这个数据源,git log 本身就是一个显示日志的命令,日志记录的是代码库变化的数据。在统计之前我们需要先整理数据,杂乱无章的数据不是不能统计,只是计算起来更加的麻烦,所以在统计前需要先将数据规范化。我们以 redis 开源库为例,切换到 6.0 分支,提交记录定位到 7bf665f125a4771db095c83a7ad6ed46692cd314,以此为数据源,学习一下git log 的常用的查询方法,其实使用不同的条件查询就是整理、归类数据的过程。条件筛选的选项非常多,使用条件筛选的选项会影响显示的提交记录的范围,查找到想要显示的提交记录。查询最近几条log使用 -number 参数可以查询最近几条提交提交记录。查询指定作者提交使用 –author 参数可以查询指定作者的提交记录。查询指定时间段的日志这个可选参数比较多,比如 –since、–until、–before、–after 等等,从意思很容易分辨怎么使用。查询2020-01-01到2020-04-01的提交记录。查询1年前的提交记录。查询包含指定描述内容的提交记录这里用可以使用 –grep 参数,可以过滤出包含指定内容的提交记录。查找指定分支的提交记录使用 git log 默认查找的是当前分支的提交记录,如果想查询其他分支的记录直接在命令后面加上分支名字就行。查询指定 commit 之间的提交记录如果想查询两个 commit 之前的提交记录,可以将两个 commit id 依次放在命令后面并用 .. 连接就可以了。查询指定文件的提交记录查询指定文件的提交记录一般直接在 git log 命令后面跟上文件名就可以。显示格式git log 除了可以筛选提交记录,还可以控制显示格式,普通不加参数,会显示作者、邮件、提交描述信息、日期等信息。通过添加参数可以控制和改变显示格式。显示单行信息git log 默认会显示多行信息,使用 –oneline 后每条提交记录只显示一行信息。显示每条记录中文件修改的具体行数和行体统计使用 –stat 参数就可以显示每条记录的中修改文件的具体行数和行数统计。显示每条提交记录中文件的增加行数和删除行数使用 –numstat 参数会把 –stat 参数中合并显示的修改行数拆分成增加行数和删除行数。统计修改的代码行数有了前面的铺垫,想要统一修改的行数就容易了,只要配合 awk 工具就可以完成统计了。还可以统计两个分支相差的代码行数。总结git log 就是一部代码库记录的“史书”,对于曾经所做的修改可以做到有史可查。git log 的选项参数可以分为筛选参数和格式参数,筛选参数可以选择记录范围,格式参数可以控制显示样式。统计就是按照一定规律来将数据进行汇总,在进行汇总前需要将数据进行整理,这样汇总的工作才会更加顺利。
使用git log查询特定条件下的日志并统计修改的代码行数
OpenMagic API
Need more than content? Move into the product flow.
If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.
