返回顶部
本页目录

log

显示提交日志

实例

显示当前分支的版本历史

                            
  • git log

显示commit历史,以及每次commit发生变更的文件

                            
  • git log --stat

搜索提交历史,根据关键词

                            
  • git log -S [keyword]

显示某个commit之后的所有变动,每个commit占据一行

                            
  • git log [tag] HEAD --pretty=format:%s

显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件

                            
  • git log [tag] HEAD --grep feature

显示某个文件的版本历史,包括文件改名

                            
  • git log --follow [file]

显示指定文件相关的每一次diff

                            
  • git log -p [file]

显示过去5次提交

                            
  • git log -5 --pretty --oneline

显示所有提交过的用户,按提交次数排序

                            
  • git shortlog -sn

选项

--follow

在重命名之后继续列出文件的历史记录(只对单个文件有效)。

--no-decorate
--decorate[=short|full|auto|no]

打印出显示的任何提交的引用名称。

  • short ,则不会打印引用名称前缀 refs/heads/refs/tags/refs/remotes/ 。如果
  • full ,完整的裁判名(包括前缀)将被打印。
  • auto ,那么如果输出到终端,则显示 ref 名称就像给出了 short 一样,否则不显示 ref 名称。选项 --decorate 是 --decorate=short 的简写。
  • 默认为 log.decorate 的配置值,否则为 auto 。
--decorate-refs=<pattern>
--decorate-refs-exclude=<pattern>

对于每个候选引用,如果它与给定给 --decorate-refs-exclude 的任何模式匹配或者如果它不匹配给定给 --decorate-refs -refs 的任何模式,则不要将其用于装饰。log.excludeDecoration配置选项允许从装饰中排除 refs,但显式的 log.excludeDecoration --decorate-refs 模式将覆盖 log.excludeDecoration 中的匹配项。

HEADrefs/heads/refs/remotes/refs/stash/refs/tags/ ,则将引用用作装饰。

--clear-decorations

指定时,此选项会清除所有先前 --decorate-refs--decorate-refs-exclude 选项,并放宽默认装饰过滤器以包含所有引用。 log.initialDecorationSet 设置为 all ,则假定此选项。

--source

打印出命令行中给出的每次提交的参考名称。

–[no-]mailmap
--[no-]use-mailmap

使用mailmap文件将作者和提交者的姓名和电子邮件地址映射到规范的真实姓名和电子邮件地址。参见git-shortlog [1]。

--full-diff

如果没有此标志, git log -p <path>... 会显示触及指定路径的提交,并在相同的指定路径上存在差异。这样,对于触及指定路径的提交,将显示完整的差异;这意味着 “…​” 仅限制提交,而不限制这些提交的差异。

请注意,这会影响所有基于差异的输出类型,例如 --stat 等产生的类型。

--log-size

在每个提交的输出中包含一行“log size ”,其中 是该提交消息的长度(以字节为单位)。旨在通过允许它们提前分配空间来加速从 git log 输出读取日志消息的工具。

-L<start>,<end>:<file><br>-L:<funcname>:<file>

跟踪由给出的行范围的演进 <start>,<end> ,或者通过函数名正则表达式 <funcname> 时,内 <file> 。您不得提供任何pathspec限制器。当前仅限于从单个修订版本开始的遍历,即,您只能给出零个或一个正修订版本参数,并且起始版本中必须存在 <start><end> (或 <funcname> )。您可以多次指定此选项。意味着 --patch 。可以使用 --no-patch 抑制补丁输出,但可以使用其他diff格式当前未实现。

<revision-range>

仅显示指定修订范围内的提交。当没有指定 <revision-range> 时,它默认为 HEAD (即导致当前提交的整个历史)。 origin…HEAD 指定从当前提交(即 HEAD )可访问的所有提交,但不是从 origin 。有关拼写 的完整方法列表,

[–] <path>…

仅显示足以说明与指定路径匹配的文件的提交。有关详细信息和其他简化模式,请参见下面的 History Simplification 简化。

出现混淆时,可能需要在路径前面加上 -- 来将它们与选项或修订范围分开。