Git 进阶指南:深入掌握 git log 查看提交历史
在日常开发中,我们经常使用 git commit 来提交代码,但如何查看和分析这些提交历史?答案就是 Git 最强大的命令之一:git log。
它不仅能帮你追溯代码变更,还能用于排查问题、审查代码、理解项目演进。本文将带你全面掌握 git log 的各种用法,从基础到高级,提升你的 Git 使用效率。
🔍 一、git log 基础用法
执行最简单的命令:
git log
你会看到类似以下输出:
commit a1b2c3d4e5f67890abcdef1234567890abcdef12
Author: Zhang San <zhangsan@example.com>
Date: Mon Sep 25 10:30:45 2025 +0800feat: 添加用户登录功能commit f0e9d8c7b6a54321fedcba9876543210fedcba98
Author: Li Si <lisi@example.com>
Date: Fri Sep 22 15:20:30 2025 +0800fix: 修复首页样式错位问题
每条记录包含:
- commit ID:唯一哈希值
- Author:提交者
- Date:提交时间
- Message:提交信息
🎯 二、常用选项与实用技巧
1. 查看简洁日志(推荐日常使用)
git log --oneline
输出:
a1b2c3d feat: 添加用户登录功能
f0e9d8c fix: 修复首页样式错位问题
✅ 一行显示,清晰简洁,适合快速浏览。
2. 查看图形化分支历史
git log --oneline --graph --all --decorate
输出示例:
* a1b2c3d (HEAD -> main) feat: 添加用户登录功能
| * 1234567 (feature/login) refactor: 重构登录逻辑
|/
* f0e9d8c fix: 修复首页样式错位问题
📌 --graph 显示分支合并关系,–all 显示所有分支,–decorate 显示标签和分支名。
3. 按作者查看提交
git log --author="Zhang San"
支持正则匹配:
git log --author="zhang.*"
4. 按时间范围查看
# 查看最近3天的提交
git log --since="3 days ago"# 查看某一天的提交
git log --since="2025-09-25" --until="2025-09-26"# 查看最近2次提交
git log -2
5. 查看某文件的修改历史
git log path/to/your/file.js
结合 --oneline 更清晰:
git log --oneline file.js
6. 查看代码变更内容(Diff)
git log -p
会显示每次提交的具体代码改动(补丁),非常适合代码审查。
你也可以结合其他选项:
git log -p -2 # 查看最近2次提交的代码变更
7. 按提交信息搜索
git log --grep="fix"
查找包含 “fix” 的提交信息,可用于筛选 bug 修复记录。
8. 只显示统计信息
git log --stat
显示每次提交修改了哪些文件及行数:
commit a1b2c3d
Author: Zhang San
Date: Mon Sep 25feat: 添加用户登录功能src/login.js | 45 +++++++++++++++++++++++++++++++------------src/utils/auth.js | 12 ++++++++++++2 files changed, 45 insertions(+), 12 deletions(-)
🛠️ 三、自定义日志格式(高级用法)
使用 --pretty 可以自定义输出格式:
git log --pretty=format:"%h - %an: %s"
常用占位符:
- %h:短提交 ID
- %an:作者名
- %ae:作者邮箱
- %s:提交信息
- %ad:提交日期
示例输出:
a1b2c3d - Zhang San: 添加用户登录功能
f0e9d8c - Li Si: 修复首页样式错位问题
💡 四、实用场景推荐
场景 | 推荐命令 |
---|---|
快速查看最近提交 | git log --oneline -5 |
审查某文件历史 | git log -p file.js |
查看某人贡献 | git log --author="name" |
分析分支合并 | git log --graph --all |
搜索特定功能 | git log --grep="feat" |
📌 五、小贴士
按 q 退出 git log 分页显示。
使用 git config 设置默认别名,例如:
git config --global alias.lg "log --oneline --graph --all --decorate"
之后直接输入 git lg 即可查看图形化日志。
✅ 总结
git log 是 Git 中最实用的命令之一,掌握它能让你:
- 快速定位问题提交
- 理解项目演进过程
- 提高代码审查效率
- 更好地协作开发
不要只停留在 git log 的默认输出,尝试使用各种选项,打造属于你自己的“代码时间机器”!