Skip to content

git log

用 git log 探索提交历史——查看、过滤和格式化过往提交。

你将学到

  • 如何用 git log 查看提交历史
  • 有用标志:--oneline、--graph、--stat
  • 按作者、日期或数量过滤
  • 用 git show 查看单次提交详情

概念讲解

git log 做什么

git log 显示仓库的提交历史——每个提交按时间倒序排列,含哈希、作者、日期和信息。

git log

默认输出很详细:

commit a1b2c3d4e5f6... (HEAD -> main)
Author: Ada Lovelace <[email protected]>
Date:   Mon Jan 15 10:30:00 2025 +0000

    Add user login page with OAuth

commit f6e5d4c3b2a1...
Author: Alan Turing <[email protected]>
Date:   Sun Jan 14 16:45:00 2025 +0000

    Fix crash when cart is empty

q 退出日志查看器(它用 less 这样的分页器)。

单行格式

最有用的标志是 --oneline,把每次提交压缩为一行:

git log --oneline
a1b2c3d Add user login page with OAuth
f6e5d4c Fix crash when cart is empty
d4c3b2a Initial commit

这是大多数开发者日常使用的格式。

图形视图

可视化分支和合并:

git log --oneline --graph --all
* a1b2c3d (HEAD -> main) Add user login page
| * b2c3d4e (feature) Add dark mode
|/
* f6e5d4c Fix crash when cart is empty
* d4c3b2a Initial commit

这展示分支如何分叉和合并——理解项目历史的关键。

有用标志

git log --oneline              # 紧凑单行格式
git log --graph --oneline      # 加分支图
git log --stat                 # 显示每次提交中变更的文件
git log -5                     # 仅最近 5 次提交
git log --author="Ada"         # 仅特定作者的提交
git log --since="2 weeks ago"  # 仅近期提交
git log --grep="fix"           # 信息中含 "fix" 的提交
git log --follow README.md     # 特定文件的历史(含重命名)

查看单次提交

git show 看一次提交的完整详情——改了哪些文件、怎么改的:

git show a1b2c3d

这显示提交元数据加完整 diff(那次提交中实际做的变更)。

比较提交

git diff a1b2c3d f6e5d4c  # 两次提交间的变更
git diff HEAD~1 HEAD       # 最近一次提交的变更

结合 git loggit diff 可以导航项目整个历史,准确了解什么在何时为何变了。

示例代码

              # 查看完整历史(按 q 退出)
git log

# 紧凑单行视图——最有用的格式
git log --oneline

# 仅最近 5 次提交
git log --oneline -5

# 所有分支的可视化图
git log --oneline --graph --all

# 显示每次提交变更的文件
git log --stat -3

# 按作者过滤
git log --author="Ada" --oneline

# 按日期过滤
git log --since="2 weeks ago" --oneline

# 搜索提交信息
git log --grep="fix" --oneline

# 查看特定提交的详情
git show HEAD  # 最近一次提交
git show HEAD~1  # 它之前的那次

# 查看单个文件的历史
git log --oneline --follow README.md

# 比较两次提交
git diff HEAD~2 HEAD --stat
            

涵盖 git log 的核心变体:紧凑、图形、按作者/日期/信息过滤,以及用 git show 查看单次提交。--oneline 和 --graph 是最常用的。

动手试一试

  • Code Diff

    比较两个版本——git log 和 git diff 一起展示历史。

  • CI/CD YAML Generator

    CI 流水线常显示 git log 输出——生成一个看看。

常见错误

错误写法

卡在 git log 分页器里不知道怎么退出

正确做法

git log 用分页器(less)。按 q 退出,空格下翻,b 上翻。用 git log --oneline 获取常能一屏显示的快速视图,或 git log -n 限制输出。

错误写法

不知道 --oneline 和 --graph 标志

正确做法

默认 git log 输出很冗长。git log --oneline 给紧凑视图,--graph --oneline --all 可视化分支。这两种格式覆盖 90% 日常使用。

相关代码片段

相关速查表

练习 git log

2 个练习

练习 git log

查阅不认识的术语

新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。

查看术语表

动手做项目

通过引导式项目应用所学,含起始代码与解决方案。

查看项目

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误