Git教程学习:04 查看提交历史

1 查看提交历史

在提交了若干更新,又或者克隆了某个项目之后,我们想回顾下提交历史,可使用 git log 命令。

以"simplegit"项目作为示例。运行下面的命令获取项目:

$ git clone https://github.com/schacon/simplegit-progit

image-20240118151507434

$ cd simplegit-progit/
$ git log

image-20240118151922200

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

2 git log 常用选项

$ git log -p -<n>
$ git log -patch -<n>

这条命令会按补丁的格式显示每次提交所引入的差异,加上-<n>可以限制显示的日志条目数。该选项除了显示基本信息之外,还附带了每次提交的变化。

image-20240118153557749

image-20240118153628766

$ git log --stat

这个命令可以看到每次提交的简略统计信息,并为git log 附带一系列的总结性选项。

image-20240118154317323

$ git log --pretty=oneline

git log --pretty这个选项可以使用不同于默认格式的方式展示提交历史。这个选项有一些内建的子选项供我们使用。比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 shortfullfuller 选项,它们展示信息的格式基本一致,但是详尽程度不一:

image-20240118154852130

$ git log --pretty=format:"%h - %an, %ar : %s"

format可以定制记录的显示格式。 这样的输出对后期提取分析格外有用——因为我们知道输出的格式不会随着 Git 的更新而发生改变:

image-20240118155135002

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

选项说明
%H提交的完整哈希值
%h提交的简写哈希值
%T树的完整哈希值
%t树的简写哈希值
%P父提交的完整哈希值
%p父提交的简写哈希值
%an作者名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用 --date=选项 来定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者的名字
%ce提交者的电子邮件地址
%cd提交日期
%cr提交日期(距今多长时间)
%s提交说明
$ git log --pretty=format:"%h %s" --graph

onelineformat 与另一个 log 选项 --graph 结合使用时尤其有用。 这个选项添加了一些 ASCII 字符串来形象地展示我们的分支、合并历史:

image-20240118155749641

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 合用的简写。

3 限制输出长度

类似 --since--until 这种按照时间作限制的选项很有用。 例如,下面的命令会列出最近两周的所有提交:

$ git log --since=2.weeks

可以是类似 "2008-01-15" 的具体的某一天,也可以是类似 "2 years 1 day 3 minutes ago" 的相对日期:

$ git log --since=2008-01-15

image-20240118160834083

还可以过滤出匹配指定条件的提交。 用 --author 选项显示指定作者的提交,用 --grep 选项搜索提交说明中的关键字。

Note我们可以指定多个 --author--grep 搜索条件,这样会只输出匹配 任意 --author 模式和 任意 --grep 模式的提交。然而,如果你添加了 --all-match 选项, 则只会输出匹配 所有 --grep 模式的提交。

另一个非常有用的过滤器是 -S,它接受一个字符串参数,并且只会显示那些添加或删除了该字符串的提交。假设我们想找出添加或删除了对某一个特定函数的引用的提交,可以调用:

$ git log --S function

最后一个很实用的 git log 选项是路径(path), 如果只关心某些文件或者目录的历史提交,可以在git log选项的最后指定它们的路径。 因为是放在最后位置上的选项,所以用两个短划线(–)隔开之前的选项和后面限定的路径名。

限制 git log 输出的选项:

选项说明
-<n>仅显示最近的 n 条提交。
--since, --after仅显示指定时间之后的提交。
--until, --before仅显示指定时间之前的提交。
--author仅显示作者匹配指定字符串的提交。
--committer仅显示提交者匹配指定字符串的提交。
--grep仅显示提交说明中包含指定字符串的提交。
-S仅显示添加或删除内容匹配指定字符串的提交。
Tip隐藏合并提交按照我们代码仓库的工作流程,记录中可能有为数不少的合并提交,它们所包含的信息通常并不多。 为了避免显示的合并提交弄乱历史记录,可以为 log 加上 --no-merges 选项。
  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Git教程廖雪峰PDF》是一本非常受欢迎的学习Git版本控制工具的教程。这本教程由知名的计算机程序员廖雪峰所编写,以简洁明了的语言和实际操作示例,向读者介绍了Git的基本概念和使用方法。 这本教程Git的起源和基础开始介绍,以帮助读者了解为什么Git成为现代软件开发必备的工具。然后,教程详细介绍了Git的安装和配置,包括如何创建和克隆仓库,添加、提交查看文件的历史记录等等。同时,教程还介绍了如何使用分支、合并、解决冲突等高级功能,以及如何与远程仓库进行交互和协作。 这本教程采用了一种循序渐进的方式,通过一步步的实例演示和练习,帮助读者逐渐掌握Git的基本操作和常用命令。并且,教程还涉及了一些高级主题,如打标签、忽略文件、子模块等,以满足读者的不同需求。 廖雪峰作为一位经验丰富的程序员,他在教程中还分享了一些他个人在使用Git过程中的一些心得和建议,这对于读者来说是非常有价值的。总体来说,《Git教程廖雪峰PDF》是一本浅显易懂、实用性强的Git入门教程,适合初学者和有一定基础的开发者阅读和学习。无论是作为参考资料还是学习教程,这本书都能够帮助读者快速掌握Git的基本使用技巧,提高版本控制和团队协作能力。 ### 回答2: 《Git教程廖雪峰PDF》是一本由知名程序员廖雪峰编写的关于Git版本控制工具的教程。这本教程以简洁明了的方式,详细介绍了Git的原理、基本操作和常见使用场景。 首先,教程Git的基本概念入手,向读者介绍了Git的核心理念:分布式版本控制,并与集中式版本控制工具进行了对比。接着,教程详细介绍了如何安装Git,并通过简单的命令行操作演示了基本的Git使用方法,如创建仓库、添加文件、提交变更等。 除了基本操作,教程还介绍了Git工作区、暂存区和版本库的概念,以及常用的分支管理策略。同时,教程还重点讲解了远程仓库的使用,包括如何与Github等网站协同工作、如何进行分支合并和冲突解决等。 此外,教程还提供了一些高级应用技巧,如如何使用Git进行代码回滚、如何管理大型项目等。同时,教程中穿插了一些案例和示例,帮助读者更好地理解和应用Git。 总的来说,《Git教程廖雪峰PDF》是一本很好的入门教程。通过该教程学习,读者可以了解Git的基本概念和操作方法,同时也能够掌握一些高级应用技巧。该教程以简单易懂的语言和清晰明了的实例,使得读者可以较快地上手Git,并在实际项目中应用所学知识。无论是初学者还是有一定经验的开发者,都能够从《Git教程廖雪峰PDF》中获得实用的Git技巧和经验。 ### 回答3: 《Git教程廖雪峰pdf》是一本详细介绍Git版本控制系统的教程,由知名程序员、技术作者廖雪峰所著。教程总共分为五个部分,包括了Git的基本概念、安装与配置、基础操作、团队协作和Git衍生工具。 在这本教程中,廖雪峰首先介绍了Git的基本概念,包括仓库、提交、分支、合并等。通过这些概念的解释,读者可以对Git的工作原理有一个初步的了解。 然后,廖雪峰详细介绍了Git的安装与配置,包括了Windows、Mac和Linux系统的安装步骤,以及Git的基本配置和常用命令。这部分内容对于初学者来说非常实用,可以帮助他们快速入门Git。 接着,廖雪峰介绍了Git的基础操作,包括了创建仓库、提交修改、查看修改记录等。通过这些操作的演示,读者可以掌握Git的基本使用方法。 在团队协作部分,廖雪峰教授了使用远程仓库进行团队协作的方法,例如克隆远程仓库、推送修改、拉取更新等。这部分内容对于多人协作或开源项目的参与者来说尤为重要,可以帮助他们高效地进行代码管理与版本控制。 最后,廖雪峰介绍了一些基于Git的衍生工具,如GitHub、GitLab和Bitbucket等。这些工具提供了更多的协作和管理功能,能够帮助开发者更好地利用Git进行项目管理和版本控制。 总的来说,《Git教程廖雪峰pdf》是一本非常实用的Git入门教程,对于初学者或有一定经验的开发者来说都非常有帮助。通过学习这本教程,读者可以快速掌握Git的基本操作和团队协作的方法,从而更好地管理和控制代码的版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值