Git 中文手册

git log 查看提交历史的 10 个实用姿势

2026-09-06 约 3 分钟阅读

git log 是查看提交历史的基础命令,但默认输出很冗长。本文整理 10 个实用姿势:单行、图形、按作者/日期/文件过滤、统计改动等,帮你高效回溯代码历史。

场景:想搞清楚项目发生过什么、谁改了什么、某个功能是什么时候引入的。git log 是主力,但默认输出又长又杂。下面 10 个姿势帮你按需取用。

1. 最常用:单行简洁

git log --oneline
# abc1234 修复登录报错
# def5678 添加注册页

2. 带分支图形

git log --oneline --graph
# * abc1234 合并 feature
# |\ 
# | * def5678 feature 改动

一眼看清分支走向与合并关系。

3. 统计每次改动了多少

git log --stat

每次提交下方会列出改动的文件及增删行数。

4. 看具体改了什么内容

git log -p            # 每次提交的完整 diff
git log -p -- 文件.js  # 只看某个文件的改动

5. 按作者过滤

git log --author="张三"
git log --author="zhang\|li"   # 多个作者

6. 按时间过滤

git log --since="2 weeks ago"
git log --until="2026-08-01"
git log --since="昨天" --until="今天"

7. 只看某个文件 / 目录的历史

git log -- src/           # 只列出影响 src 目录的提交
git log --follow -- 某文件  # 跟踪文件重命名后的历史

8. 搜索提交信息关键词

git log --grep="修复"
git log --grep="登录" --author="张三"

9. 只看某分支独有

git log main..feature       # feature 有而 main 没有的提交
git log origin/main..HEAD   # 本地领先远程的提交

10. 自定义精简格式

git log --pretty=format:"%h %ad %an %s" --date=short
# 输出: abc1234 2026-09-06 张三 修复登录报错

快速查最近 N 条

git log -5 --oneline   # 最近 5 条

常见问题

  • 想退出 log 的长列表:按 q 键。
  • log 中文乱码git config --global core.quotepath false + 终端设 UTF-8。
  • 想看某个提交改了啥git show 提交哈希

一句话速记

git log --oneline 看概览,加 --author / --since / -- file 精确过滤。

?

常见问题 FAQ

git log 怎么只看一行简洁的输出?
用 git log --oneline,每行只显示一个简短的提交哈希加提交信息,最常用。也可 git log --oneline --graph 显示分支图形。
怎么按作者查看某人的提交?
用 git log --author="作者名",可部分匹配。例如 git log --author="zhang" 会列出 zhang 开头的作者的所有提交。
怎么看某个文件或目录的修改历史?
用 git log -- 文件路径(-- 后面跟路径),只看影响该文件的提交;加 --follow 能跟踪文件被重命名后的历史。
git log 和 git reflog 有什么区别?
git log 显示当前分支可达的正常提交历史;git reflog 记录你本地 HEAD 的所有移动(含已撤销/删除的提交),用于找回丢失的提交。