查询指定作者提交
使用 --author 参数可以查询指定作者的提交记录:
查询指定时间段的日志
这个可选参数比较多,比如 --since、--until、--before、--after 等等,从意思很容易分辨怎么使用:
查询2020-01-01到2020-04-01的提交记录
恰好逮到了原作者的提交~
查询1年前的提交记录
查询包含指定描述内容的提交记录
这里用可以使用 --grep 参数,可以过滤出包含指定内容的提交记录,这里指的是在 commit 描述中筛选符合条件的提交,比如查找提交描述中包含 client 的提交记录:
查找指定分支的提交记录
使用 git log 默认查找的是当前分支的提交记录,如果想查询其他分支的记录直接在命令后面加上分支名字就行,比如查询 arm 分支上的提交记录:
其实在 git 体系中,分支名、commit、标签等拥有几乎相同的含义,所以在很多场景下可以扩展互换,比如 git log 后面加上分支名就可以查询指定分支的提交记录,如果加上 commit 就会查询这个 commit 之前的提交记录,如果加上标签,就可以查询这个标签之前的提交记录,比如我们加一个 commit 试试:
因为 commit id 就是之前的 arm 分支最新的记录,所以这个命令等价于 git log -2 arm
查询指定 commit 之间的提交记录
如果想查询两个 commit 之前的提交记录,可以将两个 commit id 依次放在命令后面并用 .. 连接就可以了,格式为 git log commit1..commit2,需要注意的是这样查询出来的提交记录列表中不包含 commit1,其实列举出的就是 commit1 之后又做了哪些修改提交。
这个特性有一个应用就是在 merge 分支之前可以查询究竟会 merge 哪些记录,常见的用法比如 git log feature..dev 就是列举出 feature 分支合并到 dev 分支将要合并的提交记录有哪些。
查询指定文件的提交记录
查询指定文件的提交记录一般直接在 git log 命令后面跟上文件名就可以,但是为了避免和分支名产生分歧,所以通常在文件名前面加上 -- 用来区分,-- 这个标识符就是用来防止混淆的,放在 -- 前面的是分支名,放在后面的是文件名,相同的作用不仅仅在 git log 命令中,在其他命令比如 git checkout 中也有相同的用法。
显示格式
git log 除了可以筛选提交记录,还可以控制显示格式,普通不加参数,会显示作者、邮件、提交描述信息、日期等信息。
通过添
加参数可以控制和改变显示格式,下面来看几条常见的
显示单行信息
git log 默认会显示多行信息,使用 --oneline 后每条提交记录只显示一行信息,可以在一屏幕中查看到更多的信息
显示每条记录中文件修改的具体行数和行体统计
使用 --stat 参数就可以显示每条记录的中修改文件的具体行数和行数统计
显示每条提交记录中文件的增加行数和删除行数
使用 --numstat 参数会把 --stat 参数中合并显示的修改行数拆分成增加行数和删除行数
依次罗列各提交记录中每个文件中增加的行数和删除的行数
要想达到这个目的需要用到 --prety=tformat: --numstat 参数,这样的显示格式便于统计
统计修改的代码行数
有了前面的铺垫,想要统一修改的行数就容易了,只要配合 awk 工具就可以完成统计了
还可以统计两个分支相差的代码行数
到这里可以发现前面的知识都可以用上,前面筛选的参数变了,得到的结果就变了,我们可以根据需求来调整不同的参数
总结
git log 就是一部代码库记录的“史书”,对于曾经所做的修改可以做到有史可查 git log 的选项参数可以分为筛选参数和格式参数,筛选参数可以选择记录范围,格式参数可以控制显示样式 统计就是按照一定规律来将数据进行汇总,在进行汇总前需要将数据进行整理,这样汇总的工作才会更加顺利到此这篇关于git log根据特定条件查询日志并统计修改的代码行数的文章就介绍到这了,更多相关git log统计修改代码行数内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!