前言
- 本篇来学习git中查看提交历史命令
查看提交历史
- 官方项目例子: git clone https://github.com/schacon/simplegit-progit
git log
说明:
- 不传任何参数会按时间先后顺序列出所有的提交,最近的更新排在最上面
- 会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明
- 常用选项
项目 | Value |
-p | 按补丁格式显示每个提交引入的差异。 |
–stat | 显示每次提交的文件修改统计信息。 |
–shortstat | 只显示 --stat 中最后的行数修改添加移除统计。 |
–name-only | 仅在提交信息后显示已修改的文件清单。 |
–name-status | 显示新增、修改、删除的文件清单。 |
–abbrev-commit | 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符。 |
–relative-date | 使用较短的相对时间而不是完整格式显示日期(比如“2 weeks ago”)。 |
–graph | 在日志旁以 ASCII 图形显示分支与合并历史。 |
–pretty | 使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和 format(用来定义自己的格式)。 |
–oneline | –pretty=oneline --abbrev-commit 合用的简写。 |
常用选项
-p
- -p / --patch:显示每次提交所引入的差异(按 补丁 的格式输出)
-n
- -n :限制显示的日志条目数量(n),例如使用 -2 选项来只显示最近的两次提交
说明 :
- 附带了每次提交的变化,适合代码审查或浏览项目搭建过程的变化
–stat
- –stat:每次提交的简略统计信息
说明:
- 可以看出变动的文件名称及增加(+)或删除(-)代码行数
git log --stat
–pretty
- –pretty:可以使用不同于默认格式的方式展示提交历史,个选项有一些内建的子选项使用
- 放个提交放在一行显示
git log --pretty=oneline
- 指定格式输出
git log --pretty=format:"%h - %an, %ar : %s"
- 常见选项
选项 | 说明 |
%H | 提交的完整哈希值 |
%h | 提交的简写哈希值 |
%T | 树的完整哈希值 |
%t | 树的简写哈希值 |
%P | 父提交的完整哈希值 |
%p | 父提交的简写哈希值 |
%an | 作者名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 --date=选项 来定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期(距今多长时间) |
%s | 提交说明 |
–since
- –since: 限制输出长度
# 查看具体某一天 git log --since=2023-1-2 # 查看最近两周提交 git log --since=2.weeks # 查看最近50天 git log --since=50.days # 查看最近10小时 git log --since=10.hours # 也可以是类似 "2 years 1 day 3 minutes ago" 的相对日期
限制输出选项
选项 | 说明 |
-<n> | 仅显示最近的 n 条提交。 |
–since, --after | 仅显示指定时间之后的提交。 |
–until, --before | 仅显示指定时间之前的提交。 |
–author | 仅显示作者匹配指定字符串的提交。 |
–committer | 仅显示提交者匹配指定字符串的提交。 |
–grep | 仅显示提交说明中包含指定字符串的提交。 |
-S | 仅显示添加或删除内容匹配指定字符串的提交。 |
– | 仅显示某些文件或目录的历史提交,-- 文件名/目录名 |
–no-merges | 不显示合并提交的历史记录 |