0


【Git 学习三】Git 查看提交历史,格式化输出统计信息

前一节:【Git 学习二】Git 文件操作 - 文件添加、移除与重命名:


【Git 学习三】Git 查看提交历史,格式化输出统计信息

文章目录

1. 基础命令

用于查看提交历史记录/提交日志的命令为

git log

在 git bash 输入此命令后, 会以时间逆序(最近的时间在前)列出各个提交历史,这些提交历史内容包括:

  • 提交的 SHA-1 校验和,
  • 作者名称,电子邮箱地址
  • 提交日期
  • 提交说明

大致如下:

$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <[email protected]>
Date:   Mon Mar 1721:52:112008-0700

    changed the version number

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <[email protected]>
Date:   Sat Mar 1516:40:332008-0700

    removed unnecessary test

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <[email protected]>
Date:   Sat Mar 1510:31:282008-0700

    first commit

2. 统计信息

2.1 - 简略统计信息

简略修改统计信息

git log

命令后添加

--stat

选项,会显示哪些文件被修改,以及被修改的文件有多少行的移除 (deletions),多少行添加 (insertions)。

$ git log --stat
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <[email protected]>
Date:   Mon Mar 1721:52:112008-0700

    changed the version number

 Rakefile |2+-1 file changed,1insertion(+),1deletion(-)

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <[email protected]>
Date:   Sat Mar 1516:40:332008-0700

    removed unnecessary test

 lib/simplegit.rb |5-----1 file changed,5deletions(-)

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <[email protected]>
Date:   Sat Mar 1510:31:282008-0700

    first commit

 README           |6++++++
 Rakefile         |23+++++++++++++++++++++++
 lib/simplegit.rb |25+++++++++++++++++++++++++3 files changed,54insertions(+)

单行历史信息

git log

命令加上

--oneline

选项,可以一行显示简略日志信息。

$ git log --oneline
ca82a6dff changed the version number
085bb3bcb removed unnecessary test
a11bef06a first commit

此命令相当于

--pretty=oneline

--abbrev-commit

合用,

--pretty

稍后介绍。

2.2 - 格式化统计信息

git log

--pretty

选项可以使用自定义的格式展示提交历史记录,有一些内建子选项供选择

short

,

full

,

fuller

,

oneline

format

用法:

git log --pretty=<option>

举例:

git log --pretty=oneline
git log --pretty=oneline

git log --oneline

不同的地方为,前者显示完整的 SHA-1 哈希值校验和

format

用于自定义显示格式

$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 6 years ago : changed the version number
085bb3b - Scott Chacon, 6 years ago : removed unnecessary test
a11bef0 - Scott Chacon, 6 years ago : first commit
%h

表示简写哈希值,

%an

表示作者名称,

%ar

表示提交历史的相对时间,

%s

表示提交说明

–pretty=format 常用标识
选项说明速记%H提交的完整哈希值commit hash%h提交的简写哈希值-%T树的完整哈希值tree hash%t树的简写哈希值-%P父提交的完整哈希值-%p父提交的简写哈希值-%an作者名字author name%ae作者的电子邮件地址author email%ad作者修订日期author date%ar作者修订日期,按多久以前的方式显示author date, relative%cn提交者的名字committer name%ce提交者的电子邮件地址committer email%cd提交日期committer date%cr提交日期,按多久以前的方式显示committer date, relative%s提交说明subject

作者 是实际的修改人,而 提交者 是将此工作合并到分支的人,如代码监视人/责任人,Git 的维护人员等。


2.3 - 过滤输出

如需要在源码中查看 Junio C Hamano 在 2008 年10 月期间除了合并提交之外的哪些提交 修改了 t/ 路径下的文件,可以使用:

$ git log --pretty="%h - %s"--author='Junio C Hamano'--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

其他过滤输出选项
选项说明

-<n>

仅显示最近的 n 条提交, n 在使用时用具体数字代替

--since

,

--after

仅显示指定时间之后的提交

--until

,

--before

仅显示指定时间之前的提交

--author

仅显示作者匹配指定字符串的提交

--committer

仅显示提交者匹配指定字符串的提交

--grep

仅显示提交说明中包含指定字符串的提交

-S

仅显示添加或删除内容匹配指定字符串的提交

其他使用举例

仅显示最近两条提交历史

git log -2

仅显示最近两周的提交历史

git log --since=2.weeks

仅显示 path/src/ 目录下的提交历史

git log -- path/src/

2.4 - 其他的选项

选项说明速记

-p

按补丁格式显示每个提交引入的差异patch

--stat

显示每次提交的文件修改统计信息statistics

--shortstat

只显示

--stat

中最后的行数修改添加移除统计-

--name-only

仅在提交信息后显示已修改的文件清单-

--name-status

显示新增、修改、删除的文件清单-

--abbrev-commit

仅显示 SHA-1 校验和所有 40 个字符中的前几个字符abbreviated

--relative-date

使用较短的相对时间而不是完整格式显示日期(比如“2 weeks ago”-

--graph

在日志旁以 ASCII 图形显示分支与合并历史-

--pretty

使用其他格式显示历史提交信息。可用的选项包括

oneline

short

full

fuller

format
  • ```

--oneline


--pretty=oneline

--abbrev-commit

```
合用的简写-
参考链接:

Git 官方中文操作文档 - 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

标签: github git 学习

本文转载自: https://blog.csdn.net/weixin_44488341/article/details/131080280
版权归原作者 Loup&卡普 所有, 如有侵权,请联系我们删除。

“【Git 学习三】Git 查看提交历史,格式化输出统计信息”的评论:

还没有评论