git log //查看文件修改提交日志
git log -p //查看每次提交的内容差异
git log -p -2 //显示最近两次提交
git log --stat //查看每次提交的简略统计信息
git log --pretty=oneline //日志显示为一行
git log --pretty=format:"%h - %an, %ar : %s" //日志显示格式化输出
选项 | 说明 |
---|---|
| 提交对象(commit)的完整哈希字串 |
| 提交对象的简短哈希字串 |
| 树对象(tree)的完整哈希字串 |
| 树对象的简短哈希字串 |
| 父对象(parent)的完整哈希字串 |
| 父对象的简短哈希字串 |
| 作者(author)的名字 |
| 作者的电子邮件地址 |
| 作者修订日期(可以用 --date= 选项定制格式) |
| 作者修订日期,按多久以前的方式显示 |
| 提交者(committer)的名字 |
| 提交者的电子邮件地址 |
| 提交日期 |
| 提交日期,按多久以前的方式显示 |
| 提交说明 |
git log --pretty=format:"%h %s" --graph //添加一些ASCII字符串形象地展示分支,合并历史。
选项 | 说明 |
---|---|
| 按补丁格式显示每个更新之间的差异。 |
| 显示每次更新的文件修改统计信息。 |
| 只显示 --stat 中最后的行数修改添加移除统计。 |
| 仅在提交信息后显示已修改的文件清单。 |
| 显示新增、修改、删除的文件清单。 |
| 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
| 使用较短的相对时间显示(比如,“2 weeks ago”)。 |
| 显示 ASCII 图形表示的分支合并历史。 |
| 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 |
git log --since=2.weeks //显示两周内的提交
git log -Sfunction_name //
选项 | 说明 |
---|---|
| 仅显示最近的 n 条提交 |
| 仅显示指定时间之后的提交。 |
| 仅显示指定时间之前的提交。 |
| 仅显示指定作者相关的提交。 |
| 仅显示指定提交者相关的提交。 |
| 仅显示含指定关键字的提交 |
| 仅显示添加或移除了某个关键字的提交 |
来看一个实际的例子,如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试文件,可以用下面的查询命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
5610e3b - Fix testcase failure when extended attributes are in use
acd3b9e - Enhance hold_lock_file_for_{update,append}() API
f563754 - demonstrate breakage of detached checkout with symbolic link HEAD
d1a43f2 - reset --hard/read-tree --reset -u: remove unmerged new paths
51a94af - Fix "checkout --track -b newbranch" on detached HEAD
b0ad11e - pull: allow "git pull origin $something:$current_branch" into an unborn branch