git log 查看提交历史的 10 个实用姿势
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 的所有移动(含已撤销/删除的提交),用于找回丢失的提交。