常用命令
| 命令 | 说明 |
|---|---|
| git log –oneline | 单行简略模式 |
| git log –author=“Alice” | 按作者筛选提交 |
| git log –grep=“fix” | 搜索提交信息中含关键词的记录 |
| git log –since=“3 days ago” | 3 天内的提交 |
| git log –after=“2025-10-01” –before=“2025-10-31” | 指定日期区间 |
结构可视化
| 命令 | 说明 |
|---|---|
| git log –oneline –graph | ASCII 分支图(单分支) |
| git log –oneline –graph –all | 显示所有分支的提交图 |
| git log –oneline –graph –decorate | 显示分支/标签名(HEAD、main、v1.0) |
| git log –oneline –graph –all –decorate | ✅ 全能分支图(推荐别名) |
时间与范围筛选
| 命令 | 说明 |
|---|---|
| git log –since=“3 days ago” | 3 天内的提交 |
| git log –until=“2025-01-01” | 2025-01-01 之前的提交 |
| git log –after=“2025-10-01” –before=“2025-10-31” | 指定日期区间 |
| git log branchA..branchB | branchB 有但 branchA 没有的提交 |
| git log ^main dev 或 git log dev ^main | dev 分支特有提交(等价于 dev..main 的反向) |
按文件/内容搜索
| 命令 | 说明 |
|---|---|
| git log – README.md | 查看某文件的提交历史 |
| git log –follow – file.txt | 追踪重命名/移动后的文件历史 |
| git log -S “password” | 查找新增或删除了 “password” 字符串的提交(二进制搜索) |
| git log -G “error.*\d+” | 用正则搜索变更内容(如含 error 和数字) |
差异与统计
| 命令 | 说明 |
|---|---|
| git log -p | 显示每次提交的完整 patch(代码差异) |
| git log -p -2 | 仅最后 2 次提交的 diff |
| git log –stat | 显示文件变更统计(增删行数) |
| git log –name-only | 仅列出每次提交修改的文件名 |
| git log –name-status | 显示文件状态(A:新增, M:修改, D:删除) |
筛选特定类型提交
| 命令 | 说明 |
|---|---|
| git log –merges | 只显示合并提交(Merge commits) |
| git log –no-merges | 排除合并提交(仅普通 commit) |
| git log –first-parent | 只沿第一条父线追溯(适合 CI/CD 查主干历史) |
自定义
|
|
| 符号 | 含义 |
|---|---|
| %h | 短 hash(如 a1b2c3d) |
| %H | 完整 hash |
| %an | 作者名 |
| %ae | 作者邮箱 |
| %ad | 作者日期(配合 –date=iso 更清晰) |
| %ar | 相对时间(如 2 hours ago) |
| %s | 提交摘要 |
| %d | ref 名(分支/标签) |
| %f | 安全文件名格式的提交信息 |