详情

首页手游攻略 Git提交历史查看与日志筛选的全攻略实用指南

Git提交历史查看与日志筛选的全攻略实用指南

佚名 2026-08-27 20:30:01

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Git提交历史查看与日志筛选的全攻略”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

目录
  • 一、基础用法:git log
  • 二、显示补丁与统计
    • 2.1-p/--patch:显示补丁
    • 2.2--stat:文件修改统计
  • 三、多样化输出格式:--pretty
    • 3.1 预定义格式
    • 3.2 自定义格式
  • 四、ASCII 图形化分支:--graph
    • 五、限制与过滤日志
      • 5.1 限制条目数量
      • 5.2 时间范围
      • 5.3 作者/提交者过滤
      • 5.4 提交信息关键词:--grep
      • 5.5 “挑选”改动内容:-S
      • 5.6 按路径筛选
    • 六、实战示例
      • 七、常用选项速览
        • 八、总结

          一、基础用法:git log

          克隆示例仓库并进入目录:

          $ git clone https://github.com/schacon/simplegit-progit
          $ cd simplegit-progit

          直接运行 git log,默认会按 倒序 列出所有提交:

          $ git log
          commit ca82a6dff817……
          Author: Scott Chacon <schacon@…>
          Date: Mon Mar 17 21:52:11 2008 -0700

              Change version number

          commit 085bb3bcb6……
          Author: Scott Chacon <schacon@…>
          Date: Sat Mar 15 16:40:33 2008 -0700

              Remove unnecessary test

          commit a11bef06a3……
          Author: Scott Chacon <schacon@…>
          Date: Sat Mar 15 10:31:28 2008 -0700

              Initial commit

          每条记录包括提交哈希(SHA-1)、作者、日期和提交信息。

          二、显示补丁与统计

          2.1-p/--patch:显示补丁

          跟随每次提交后直接输出该提交所引入的 diff:

          $ git log -p -2

          仅显示最近两次提交及其完整代码变更。

          2.2--stat:文件修改统计

          在每次提交下方汇总修改文件列表及插入/删除行数:

          $ git log --stat

          输出示例:

           Rakefile | 2 +-
           1 file changed, 1 insertion(+), 1 deletion(-)

          若只想看统计汇总行,可用 --shortstat

          三、多样化输出格式:--pretty

          3.1 预定义格式

          oneline:每个提交一行,配合 --abbrev-commit 可更简洁:

          $ git log --pretty=oneline

          short/full/fuller:分别对应不同程度的信息丰富度。

          3.2 自定义格式

          采用 format: 自定义输出字段,常用占位符如下所示:

          占位符含义
          %H完整提交哈希
          %h简短提交哈希
          %an作者名称
          %ae作者邮箱
          %ar作者日期(相对,如 “2 weeks ago”)
          %cn提交者名称
          %ce提交者邮箱
          %cr提交者日期(相对)
          %s提交信息摘要

          示例:

          $ git log --pretty=format:"%h - %an, %ar : %s"

          四、ASCII 图形化分支:--graph

          在日志前加上分支/合并结构的 ASCII 图示:

          $ git log --pretty=format:"%h %s" --graph

          示例输出:

          * 2d3acf9 Ignore errors from SIGCHLD on trap
          * 5e3ee11 Merge branch 'master' of …
          |
          | * 420eac9 Add method for current branch
          * | 30e367c Timeout code and tests
          ...

          五、限制与过滤日志

          5.1 限制条目数量

          -n-<n>:仅显示最近 n 条提交

          $ git log -3      # 最近三次

          5.2 时间范围

          • --since / --after:指定起始日期
          • --until / --before:指定结束日期

          兼容多种格式,如 "2025-01-15""2 weeks ago"

          $ git log --since="2 weeks"

          5.3 作者/提交者过滤

          • --author="用户名或邮箱"
          • --committer="提交者"

          $ git log --author="Junio C Hamano"

          5.4 提交信息关键词:--grep

          仅显示提交信息中匹配给定正则/字符串的记录:

          $ git log --grep="bugfix"

          添加 --all-match 要求同时匹配多个 --grep--author 条件。

          5.5 “挑选”改动内容:-S

          查找改动中添加或删除某个字符串的提交:

          $ git log -S function_name

          5.6 按路径筛选

          仅显示对指定文件或目录有改动的提交:

          $ git log -- path/to/file

          记得在路径前加 -- 来区分选项与路径。

          六、实战示例

          查询 2008 年 10 月由 Junio Hamano 修改 t/ 目录下文件的非合同时提交:

          $ git log 
            --pretty="%h - %s"
            --author="Junio C Hamano"
            --since="2008-10-01"
            --before="2008-11-01"
            --no-merges
            -- t/

          输出最近符合条件的若干提交。

          七、常用选项速览

          八、总结

          git log 是查看、分析项目历史的核心利器。掌握补丁输出、统计信息、格式定制、图形化分支、时间/作者/内容过滤等功能后,你能够:

          • 更快定位引入某行代码的提交
          • 按日期范围或作者筛选日志
          • 以简洁或自定义格式输出,便于脚本处理
          • 可视化分支与合并结构,理清历史脉络

          落到代码里,以上就是Git提交历史查看与日志筛选的全攻略的详细内容,更多关于Git历史查看与日志筛选的资料请关注脚本之家其它相关文章!

          您可能感兴趣的文章:

          • Git查看提交历史的操作技巧
          • Git如何查看历史提交及其参数设定的常用命令详解
          • Git中查看文件的变更历史的常用命令详解
          • Idea中采用git查看历史版本的方法
          • 在idea中git实现里查看历史代码方式

          相关资讯
          点击查看更多
          游戏推荐
          推荐专题
          热门阅读
          推荐下载