Git 进阶指南:深入掌握 git log 查看提交历史

在日常开发中,我们经常使用 git commit 来提交代码,但如何查看和分析这些提交历史?答案就是 Git 最强大的命令之一:git log。

它不仅能帮你追溯代码变更,还能用于排查问题、审查代码、理解项目演进。本文将带你全面掌握 git log 的各种用法,从基础到高级,提升你的 Git 使用效率。

🔍 一、git log 基础用法

执行最简单的命令:

bash 复制代码
git log

你会看到类似以下输出:

text 复制代码
commit a1b2c3d4e5f67890abcdef1234567890abcdef12
Author: Zhang San <zhangsan@example.com>
Date:   Mon Sep 25 10:30:45 2025 +0800

    feat: 添加用户登录功能

commit f0e9d8c7b6a54321fedcba9876543210fedcba98
Author: Li Si <lisi@example.com>
Date:   Fri Sep 22 15:20:30 2025 +0800

    fix: 修复首页样式错位问题

每条记录包含:

  • commit ID:唯一哈希值
  • Author:提交者
  • Date:提交时间
  • Message:提交信息

🎯 二、常用选项与实用技巧

1. 查看简洁日志(推荐日常使用)

bash 复制代码
git log --oneline

输出:

text 复制代码
a1b2c3d feat: 添加用户登录功能
f0e9d8c fix: 修复首页样式错位问题

✅ 一行显示,清晰简洁,适合快速浏览。

2. 查看图形化分支历史

bash 复制代码
git log --oneline --graph --all --decorate

输出示例:

text 复制代码
* a1b2c3d (HEAD -> main) feat: 添加用户登录功能
| * 1234567 (feature/login) refactor: 重构登录逻辑
|/  
* f0e9d8c fix: 修复首页样式错位问题

📌 --graph 显示分支合并关系,--all 显示所有分支,--decorate 显示标签和分支名。

3. 按作者查看提交

bash 复制代码
git log --author="Zhang San"

支持正则匹配:

bash 复制代码
git log --author="zhang.*"

4. 按时间范围查看

bash 复制代码
# 查看最近3天的提交
git log --since="3 days ago"

# 查看某一天的提交
git log --since="2025-09-25" --until="2025-09-26"

# 查看最近2次提交
git log -2

5. 查看某文件的修改历史

bash 复制代码
git log path/to/your/file.js

结合 --oneline 更清晰:

bash 复制代码
git log --oneline file.js

6. 查看代码变更内容(Diff)

bash 复制代码
git log -p

会显示每次提交的具体代码改动(补丁),非常适合代码审查。

你也可以结合其他选项:

bash 复制代码
git log -p -2  # 查看最近2次提交的代码变更

7. 按提交信息搜索

bash 复制代码
git log --grep="fix"

查找包含 "fix" 的提交信息,可用于筛选 bug 修复记录。

8. 只显示统计信息

bash 复制代码
git log --stat

显示每次提交修改了哪些文件及行数:

text 复制代码
commit a1b2c3d
Author: Zhang San
Date:   Mon Sep 25

    feat: 添加用户登录功能

 src/login.js    | 45 +++++++++++++++++++++++++++++++------------
 src/utils/auth.js | 12 ++++++++++++
 2 files changed, 45 insertions(+), 12 deletions(-)

🛠️ 三、自定义日志格式(高级用法)

使用 --pretty 可以自定义输出格式:

bash 复制代码
git log --pretty=format:"%h - %an: %s"

常用占位符:

  • %h:短提交 ID
  • %an:作者名
  • %ae:作者邮箱
  • %s:提交信息
  • %ad:提交日期
    示例输出:
text 复制代码
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 设置默认别名,例如:

bash 复制代码
git config --global alias.lg "log --oneline --graph --all --decorate"

之后直接输入 git lg 即可查看图形化日志。

✅ 总结

git log 是 Git 中最实用的命令之一,掌握它能让你:

  • 快速定位问题提交
  • 理解项目演进过程
  • 提高代码审查效率
  • 更好地协作开发
    不要只停留在 git log 的默认输出,尝试使用各种选项,打造属于你自己的"代码时间机器"!
相关推荐
爱学英语的程序员14 分钟前
让AI 帮我做了个个人博客(附提示词!)
人工智能·git·vue·github·node·个人博客
liu****1 小时前
git工具
git·python·算法·机器学习·计算机基础
wxr06162 小时前
git无法克隆
git
cooldream20094 小时前
Git 拒绝推送(Push Rejected)问题全解析与解决方案实战指南
git
wxr06164 小时前
GIT无法push
git·gitee
装不满的克莱因瓶6 小时前
【踩坑】IDEA提交Git .gitignore忽略文件不起作用
java·git·.gitignore·踩坑
cos16 小时前
Fork 主题如何更新?基于 Ink 构建主题更新 CLI 工具
前端·javascript·git
OpenMiniServer17 小时前
当 AI 成为 Git 里的一个“人”
人工智能·git
Carry34518 小时前
不清楚的 .gitignore
前端·git
番茄灭世神1 天前
Git入门使用学习
git·gitee·软件工程·计算机专业入门