查看提交历史
在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。
//会按时间先后顺序列出所有的提交,最近的更新排在最上面
$ git log
//显示每次提交所引入的差异,-2 选项来只显示最近的两次提交
$ git log -p -2
//每次提交的简略统计信息,可以使用 --stat
$ git log --stat
//使用不同于默认格式的方式展示提交历史 --pretty.比如 oneline short,full 和 fuller
$ git log --pretty=oneline
//定制记录的显示格式. 文章末尾 Table1 列出了 format 接受的常用格式占位符的写法及其代表的意义
$ git log --pretty=format:"%h - %an, %ar : %s"
//形象地展示你的分支、合并历史. 后面第三章Git分支会经常用到
git log --pretty=format:"%h %s" --graph
//文章末尾 Table2 列出了 git log 的常用选项
限制输出长度
除了定制输出格式的选项之外,git log
还有许多非常实用的限制输出长度的选项,也就是只输出一部分的提交。
//列出最近两周的所有提交
$ git log --since=2.weeks
//只会显示那些添加或删除了该字符串的提交(未掌握)
$ git log -S function_name
//文章末尾Table3,列出了限制 git log 输出的选项 中列出了常用的选项
Table 1.
git log --pretty=format
常用的选项
选项 | 说明 |
| 提交的完整哈希值 |
| 提交的简写哈希值 |
| 树的完整哈希值 |
| 树的简写哈希值 |
| 父提交的完整哈希值 |
| 父提交的简写哈希值 |
| 作者名字 |
| 作者的电子邮件地址 |
| 作者修订日期(可以用 --date=选项 来定制格式) |
| 作者修订日期,按多久以前的方式显示 |
| 提交者的名字 |
| 提交者的电子邮件地址 |
| 提交日期 |
| 提交日期(距今多长时间) |
| 提交说明 |
你一定奇怪 作者 和 提交者 之间究竟有何差别, 其实作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。 所以,当你为某个项目发布补丁,然后某个核心成员将你的补丁并入项目时,你就是作者,而那个核心成员就是提交者。 我们会在 分布式 Git 再详细介绍两者之间的细微差别。
Table 2.
git log
的常用选项
选项 | 说明 |
| 按补丁格式显示每个提交引入的差异。 |
| 显示每次提交的文件修改统计信息。 |
| 只显示 --stat 中最后的行数修改添加移除统计。 |
| 仅在提交信息后显示已修改的文件清单。 |
| 显示新增、修改、删除的文件清单。 |
| 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符。 |
| 使用较短的相对时间而不是完整格式显示日期(比如“2 weeks ago”)。 |
| 在日志旁以 ASCII 图形显示分支与合并历史。 |
| 使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和 format(用来定义自己的格式)。 |
|
|
Table 3. 限制
git log
输出的选项
选项 | 说明 |
| 仅显示最近的 n 条提交。 |
| 仅显示指定时间之后的提交。 |
| 仅显示指定时间之前的提交。 |
| 仅显示作者匹配指定字符串的提交。 |
| 仅显示提交者匹配指定字符串的提交。 |
| 仅显示提交说明中包含指定字符串的提交。 |
| 仅显示添加或删除内容匹配指定字符串的提交。 |