Git   发布时间:2022-05-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Git 系列教程(6)- 查看 commit 提交历史大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

查看提交历史

在提交了若干更新,又或者克隆了某个项目之后,如何查看提交历史

git log 

 

官方栗子

运行下面的命令获取该项目:

git clone https://github.com/scha

 

运行 git log 命令

Git 系列教程(6)- 查看 commit 提交历史

可以获取到的信息

  • 不传入任何参数的认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面
  • 会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明

 

git log 常见命令行参数

  • -p、--patch:它会显示每次提交所引入的差异(按 patch 的格式输出)。
  • -n:n 是数目,限制显示的日志数量,比如 -2,输出两条

Git 系列教程(6)- 查看 commit 提交历史

-p 除了显示基本信息之外,还附带了每次提交的变化,好处:当进行代码审 review 时,可以快速看到别人提交代码的差异

 

--stat

看到每次提交的简略统计信息

Git 系列教程(6)- 查看 commit 提交历史

每次提交的下面列出所有被修改过的文件、有多少文件修改了以及被修改过的文件的哪些行被移除或是添加

 

--pretty

可以使用不同格式来显示提交历史,有一些内建的子选项供你使用。

Git 系列教程(6)- 查看 commit 提交历史

 

--pretty=oneline

将每个提交放在一行显示,在浏览大量的提交时非常有用

Git 系列教程(6)- 查看 commit 提交历史

另外还有 shortfull 和 fuller 选项,它们展示信息的格式基本一致,但是详尽程度不一

 

--pretty=format 

可以定制记录的显示格式

这样的输出对后期提取分析格外有用,因为输出的格式不会随着 Git 的更新而发生改变

Git 系列教程(6)- 查看 commit 提交历史

 

 

git log --pretty=format 常用的选项

列出了 format 接受的常用格式占位符的写法及其代表的意义

选项 说明

%H

提交的完整哈希值

%h

提交的简写哈希值

%T

树的完整哈希值

%t

树的简写哈希值

%P

父提交的完整哈希值

%p

父提交的简写哈希值

%an

作者名字

%ae

作者的电子邮件地址

%ad

作者修订日期(可以用 --date=选项 来定制格式)

%ar

作者修订日期,按多久以前的方式显示

%cn

提交者的名字

%ce

提交者的电子邮件地址

%cd

提交日期

%cr

提交日期(距今多长时间)

%s

提交说明

 

当 oneline 或 format 与另一个 log 选项 --graph 结合使用时尤其有用,展示你的分支、合并历史:

git log --pretty=format:"%h %s" --graph
* 2d3acf9 ignore errors from SIGCHLD on trap
*  5e3ee11 Merge branch '@H_309_374@master' of git:github.com/dusTin/grit
|\
| * 420eac9 Added a method for getTing the current branch.
* | 30e367c timeout code and tests
* | 5a09431 add timeout protection to grit
* | e1193f8 support for heads with slashes in them
|/
* d6016bc require time  xml@R_618_10906@ma
*  11d191e Merge branch defunkt' into local

 

git log 输出格式的常用选项 

选项 说明

-p

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

--stat

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

--shortstat

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

--name-only

仅在提交信息后显示修改文件清单。

--name-status

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

--abbrev-commit

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

--relative-date

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

--graph

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

--pretty

使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和 format(用来定义自己的格式)。

--oneline

--pretty=oneline --abbrev-commit 合用的简写。

限制输出长度

  • -n:限制输出提交历史的数量
  • --since、--until:按照时间限制

下面的命令会列出最近两周的所有提交

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

 

git lot 限制输出的选项

选项 说明

-<n>

显示最近的 n 条提交。

--since--after

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

--until--before

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

--author

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

--committer

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

--grep

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

-S

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

--

显示某些文件或目录的历史提交,-- 文件名/目录名

--no-merges

不显示合并提交的历史记录

来看一个实际的例子,如果要在 Git 源码库中查看 Junio Hamano 在 2008 年 10 月其间, 除了合并提交之外的哪一个提交修改了测试文件,可以使用下面的命令:

$ 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  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

 

大佬总结

以上是大佬教程为你收集整理的Git 系列教程(6)- 查看 commit 提交历史全部内容,希望文章能够帮你解决Git 系列教程(6)- 查看 commit 提交历史所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: