git 可以同过log来查看历史记录:
git log
log -p 查看详细历史
-p 是 –patch 的缩写,通过 -p 参数,可以看到具体每个 commit 的改动细节:
git log -p
log –stat 查看简要统计
git log --stat
show 查看具体的commit
查看当前commit
可以直接输入:
git show
查看任意一个commit
在shou后面加上要查看的commit引用
git show f12584
格式化显示
当commits有很多记录时,默认的显示方式不利于我们快速查看,这时候我们可以–pretty来优化显示
git log --pretty=onelie
当然,除了系统提供的显示方案,也可以自己自定义:
git log --pretty=format:"%h - %an, %ar : %s"
参数解释:
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
ASCII 图形
在命令行中可以使用–graph来查看通过ASCII生成的简单图形。
git log --graph --pretty=oneline
限制输出长度
除了定制输出格式的选项之外,git log还有许多非常实用的限制输出长度的选项,也就是只输出部分提交信息。
例如输出1条信息使用 git log - :
git log -1
另外可以根据时间作限制的选项,比如 –since 和 –until。下面的命令列出所有最近两周内的提交:
$ git log --since=2.weeks
你可以给出各种时间格式,比如说具体的某一天(“2018-03-06”)
git log --since="2018-03-06"
还有其他限制选项:
选项 说明
--after= 仅显示指定时间之后的提交。
--before= 仅显示指定时间之前的提交。
--author= 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep= 仅显示commit描述中包含的提交。如果想同时使用--grep和--author,必须在附加一个--all-match参数
-- 文件名 比如:git log -- foo.py bar.py ,只返回和foo.py或bar.py相关的commit
--no-merges 过滤掉没有合并的请求
除了上面的还有一些其他命令:
选项 说明
--shortstat 只显示--stat中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。