在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的工具是 git log 命令。git log命令是git仓库畅游神器。 配置管理员需要对git仓库进行查看, 错误定位,查文件的提交历史, 查分支的提交历史,查作者的提交历史等情况下,都用git log。 

git log [<options>] [<revision range>] [[--] <path>…​]
CODE



git log

不传入任何参数的默认情况下,不写<revision range>, 默认是 HEAD,也就是当前分支的头。git log 会按时间先后顺序列出HEAD之前所有的提交,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。


git log -p -2

其中一个比较有用的选项是 -p  --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。代码审查的时候用。


git log --stat

代码统计利器。

git log --pretty=oneline
git log --oneline
简洁输出

git log --pretty=format:"%h - %an, %ar : %s"
按一定的format输出。

git log --pretty=format:"%h %s" --graph
显示成树形结构。


git log --since=2.weeks 或者 git log --after=2.weeks
git log --util=2.weeks 或者 git log --before=2.weeks

该命令可用的格式十分丰富——可以是类似 "2008-01-15" 的具体的某一天,也可以是类似 "2 years 1 day 3 minutes ago" 的相对日期。


git log --grep “dd”

查看comment信息中有什么的提交。


git log -S function_name

最后一个很实用的 git log 选项是路径(path), 如果只关心某些文件或者目录的历史提交,可以在 git log 选项的最后指定它们的路径。 因为是放在最后位置上的选项,所以用两个短划线(--)隔开之前的选项和后面限定的路径名。




https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2