文章目录
- 基本概述
- 基本用法
- 常用选项
- 过滤输出
- 附加输出
- 格式化输出
- 高级用法
基本概述
git log 的作用是:查看版本库中的提交记录
基本用法
1.完整显示
git log
- 显示提交的详细信息(哈希,作者,时间,提交信息)
- 按 空格 向下翻页,按 q 退出
2.单行显示
git log --oneline
- 每条提交显示为一行(缩短哈希 + 提交信息)
3.图形显示
git log --graph
- 显示分支合并历史
常用选项
过滤输出
1.限制数量
git log -3
- 仅显示最近的 3 条提交
2.按作者过滤
git log --author="John"
- 筛选特定作者的提交
3.按时间过滤
git log --since="2023-01-01" --until="2023-12-31"
git log --since="2 weeks ago"
- 使用日期范围或相对时间
4.按提交信息过滤
git log --grep="bugfix"
- 搜索提交信息中的关键词
5.按文件过滤
git log README.md
- 查看影响某文件的提交
6.按代码过滤
git log -S "functionName"
git log -G "regex-pattern"
- S:搜索代码中添加/删除 “functionName” 的提交
- G:使用正则表达式匹配代码变更
附加输出
1.输出patch信息
git log -p
- 在完整输出的基础上显示代码差异(diff信息)
2.输出文件变更统计
git log --stat
- 在完整输出的基础上显示文件变更统计
3.输出变更的文件
git log --name-only
- 在完整输出的基础上显示变更的文件
4.输出变更文件及其状态
git log --name-status
- 在完整输出的基础上显示变更文件及其状态
格式化输出
1.自定义格式
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
- %h:缩短的提交哈希
- %an:作者名
- %ar:相对提交时间(如 “2 days ago”)
- %s:提交信息
- %C(red):显示红色
- %C(green):显示绿色
- %C(blue):显示蓝色- %Creset:颜色重置
2.JSON格式输出
git log --pretty=format:'{"commit": "%h", "author": "%an", "date": "%ad", "message": "%s"}' > log.json
- 生成结构化数据(适用于脚本处理)
高级用法
1.显示某行的修改历史
git log -L 10,20:file.txt
- 查看 file.txt 第 10-20 行的修改历史
2.比较分支差异
git log branch1..branch2
- 显示 branch2 有但 branch1 没有的提交