log查看纪录

查看提交历史

git log 查看提交纪录

$ git log
commit ca82a6dff817ec66f44342007202690a93763949 (HEAD -> master, origin/master, origin/HEAD)
Author: Scott Chacon 
Date:   Mon Mar 17 21:52:11 2008 -0700

    changed the verison number

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon 
Date:   Sat Mar 15 16:40:33 2008 -0700

    removed unnecessary test code

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon 
Date:   Sat Mar 15 10:31:28 2008 -0700

    first commit

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。

常用参数

有许多选项可以帮助搜寻的提交。

-n
默认git log显示所有提交,

  • git log -2显示最后两次提交、
  • git log -1 显示最后一次提交

filename
查看某个文件的提交

  • git log README 显示README的所有提交
  • git log -2 README 显示README最后两次提交

-p
展开显示每次提交的内容差异(把修改的内容全部打印出来)

  • git log 显示每次提交的差异
  • git log -p -2 显示最后两次提交的差异
  • git log -p README 显示README的每次提交差异

--word-diff
展示每次提交的内容差异(单词层面的对比)

  • git log -U2 --word-diff 显示每次提交的单词的差异
  • git log -p -2 --word-diff 最后两次提交的单词的差异

-U2 上下文打印两行 (已修改行为基础,上下各两行)
-U3 上下文打印三行
这里展示的新增加的单词被 {+ +} 括起来,被删除的单词被 [- -] 括起来

--stat
显示简要的每个文件的增改行数统计,列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计

  • git log --stat 显示每提交的每个文件的增改行数

--shortstat 不常用
只显示 --stat 中最后的行数修改添加移除统计

  • git log --shortstat

--name-only 不常用
仅在提交信息后显示已修改的文件清单

  • git log --name-only

--abbrev-commit
显示 SHA-1 的前几个字符,而非所有的 40 个字符

  • git log abbrev-commit

--pretty
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)

  • git log --pretty=oneline 每次提交显示在一行
  • git log --pretty=short 每次提交显示简短信息 (Author)
  • git log --pretty=full 每次提交显示相对多的内容(Author/Commit)
  • git log --pretty=fuller 每次提交显示详细内容 (Author/AuthorDate/Commit/CommitDate)
  • git log --pretty=format:"%h - %an, %ar: %s" 自定义格式显示

format格式

选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明

--graph
看到开头多出一些 ASCII 字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况

限制输出长度

git log 还有许多非常实用的限制输出长度的选项,也就是只输出部分提交信息。之前我们已经看到过 -2 了,它只显示最近的两条提交,实际上,这是 - 选项的写法,其中的 n 可以是任何自然数,表示仅显示最近的若干条提交。

选项 说明
-(n) 仅显示最近的 n 条提交
--since, --after 仅显示指定时间之后的提交
--until, --before 仅显示指定时间之前的提交
--author 仅显示指定作者相关的提交
--grep 模糊匹配提交内容 (多次--grep 默认查询是或)
--all-match 多次--grep与查询 需要加上 --all-match
--committer 仅显示指定提交者相关的提交
  • git log --since="2017-11-29" 显示11月29号以后的提交(包括29号)
  • git log --after="2017-11-29" (同上)
  • git log --until="2017-11-29" 显示11月29号以前的提交(包括29号)
  • git log --before="2017-11-29" (同上)
  • git log --author="yin" 显示作者是“yin”提交的内容
  • git log --grep="FTP" 显示提交内容包含FTP内容的提交
  • git log --grep="update" --grep="list" --all-match 查询提交内容包含update且包含list的提交纪录
  • git log --committer="yin" 显示提交者(commit的人)的提交
$ git log --grep="update" --grep="list" --all-match
commit 2d06020a37be740273c52daabd867a3e23ccc226
Author: yin 
Date:   Mon Oct 9 17:10:13 2017 +0800

    web update response list

参考内容

Git-基础-查看提交历史

你可能感兴趣的:(log查看纪录)