Git log命令

版本控制系统的优势在于记录变更。这些记录允许我们检索数据,比如提交(commits),查找错误和更新。然而,如果我们无法导航这个历史记录,所有这些历史记录将毫无用处。在这种情况下,我们需要使用git log命令。

Git log是一种用于查看和阅读仓库所有发生的变更历史的实用工具。可以使用多个选项与git log一起使用,以使历史记录更具体。

通常,git log是一系列提交的记录。git log包含以下数据:

  • 提交哈希值 ,它是由SHA(安全哈希算法)算法生成的40个字符的校验和数据。它是一个唯一的数字。
  • 提交作者元数据 :作者的信息,如作者姓名和电子邮件。
  • 提交日期元数据 :这是提交的时间的日期时间戳。
  • 提交标题/消息 :这是在提交消息中给出提交的概述。

如何退出git log命令

可能会出现一种情况,当你运行git log命令时,会卡住。你想输入或返回bash,但是你无法这样做。当你点击 Enter 键时,它会导航你到上一条命令,直到结束标志。

解决此问题的方法是按下 q(退出)键 。它将使你退出这种情况,返回到命令行提示符。现在,你可以执行任何命令。

基本的git log

git log命令是git中最常用的命令之一。它是Git中最有用的命令。每次你需要检查历史记录时,都必须使用git log命令。基本的git log命令将显示最近的提交和head的状态。使用方法如下:

$ git log

上述命令将显示最后提交的版本。请看下面的输出:

Git log命令

上述命令列出了所有最新的提交。每个提交包含一些唯一的sha-id,这是由SHA算法生成的。它还包括日期、时间、作者和一些附加细节。

我们可以在命令行上执行一些操作,如滚动、跳转、移动和退出。要在命令行上滚动,按k向上移动,按j向下移动,按空格键向下滚动一页,按q退出命令行。

Git Log Oneline

oneline选项用于以每行一个提交的方式显示输出。它还以简要方式显示输出,如提交SHA的前七个字符和提交信息。

使用方法如下:

$ git log --oneline

因此,通常我们可以说–oneline标志使得git log显示:

  • 每行一个提交
  • SHA的前七个字符
  • 提交消息

考虑以下输出:

Git log命令

正如我们可以从上述输出中更精确地看到的那样,每个提交都只显示为一行,包括一个七位数的 sha 编号和提交信息。

Git 日志统计

log 命令显示已被修改的文件。它还显示了行数和总记录的摘要行。

一般来说,我们可以说 stat 选项用于显示:

  • 被修改的文件,
  • 增加或删除的行数,
  • 总记录变更的摘要行,
  • 增加或删除的行。

可以按如下方式使用:

$ git log --stat

上面的命令将显示已经被修改的文件。请参考以下输出:

Git log命令

从上述输出中,我们可以看到所有列出的提交都是对存储库的修改。

Git log P 或 Patch

git log patch 命令显示已被修改的文件。它还显示了添加、删除和更新行的位置。

将被用于:

$ git log --patch

或者

$ git log -p

一般来说,我们可以说 –patch 标志用于显示:

  • 被修改的文件
  • 添加或删除的行的位置
  • 具体的更改内容。

考虑下面的输出:

Git log命令

上面的输出显示了修改过的文件以及添加或删除的行所在的位置。

Git log图表

Git日志命令允许将您的Git日志显示为图表形式。要以图表形式列出提交记录,请使用–graph选项运行git log命令。它的运行方式如下:

$ git log --graph

为了使输出更具体,你可以将这个命令和 –oneline 选项结合起来使用。它将如下操作:

$ git log --graph --oneline

过滤提交历史

我们可以根据需要筛选输出结果,这是Git的一个独特功能。我们可以在输出结果上应用许多过滤器,如数量、日期、作者等。每个过滤器都有自己的规格。它们可用于在输出结果上实施一些导航操作。

让我们详细了解每个过滤器。

按数量:

我们可以使用git log命令限制输出提交的数量。这是最具体的命令。如果你只对少量的提交感兴趣,这个命令将去除复杂性。

要限制git log的输出,可以使用-选项。如果我们只想要最近的三个提交,可以在git log命令中传递参数-3。考虑下面的输出:

Git log命令

从上面的输出可以看出,我们可以限制git log的输出。

按日期和时间:

我们可以通过日期和时间来过滤输出。我们需要使用 --after--before 参数来指定日期。这两个参数都接受多种日期格式。它会按以下方式运行:

$ git log --after="yy-mm-dd"

以上命令将显示在给定日期之后进行的所有提交。考虑下面的输出:

Git log命令

上述命令会列出“2019-11-01”之后的所有提交。

我们还可以传递适用的参考语句,如“yesterday”、“1 week ago”、“21 days ago”等。它会运行如下:

git log --after="21 days ago"

上述命令将显示21天前所做的提交。请查看下面的输出:

Git log命令

我们还可以追踪两个日期之间的提交。要追踪在两个日期之间创建的提交,请传递语句引用 --before--after 日期。假设我们要追踪2019年11月1日至2019年11月8日之间的提交。我们将运行以下命令:

$ git log --after="2019-11-01" --before="2019-11-08 "

上述命令将显示在指定日期之间提交的记录。请参考以下输出:

Git log命令

上述输出显示了给定期间的提交记录。我们可以使用–since和–until而不是–after和–before,因为它们分别是同义词。

按作者过滤:

我们可以通过特定的用户来过滤提交记录。假设我们只想列出由特定团队成员提交的记录,我们可以使用-author标志来根据作者姓名过滤提交记录。该命令接受一个正则表达式,并返回与该模式匹配的作者所做的提交列表。您可以使用确切的名称而不是模式。该命令将运行如下:

$ git log --author="Author name"

上述命令将显示给定作者做出的所有提交。考虑下面的输出:

Git log命令

$ git log --author="Stephen"

上述语句将显示所有作者包含名称Stephen的提交记录。作者的名称不需要完全匹配; 它只需要指定的短语。

我们知道,作者的电子邮件也与作者的名称相关,因此我们可以使用作者的电子邮件作为模式或确切搜索。假设我们想要跟踪由电子邮件服务为google的作者的提交记录。为此,我们可以使用通配符”@gmail.com”。考虑下面的语句:

$ git log -author="@gmail.com"

上述命令将按照所给模式显示作者提交的内容。考虑以下输出:

Git log命令

根据提交消息进行过滤:

我们可以使用grep选项来根据提交消息进行过滤,它将起到作者选项的作用。

运行如下:

$ git log --grep=" Commit message."

我们可以使用提交消息的简写形式而不是完整的消息。请考虑下方的输出。

Git log命令

以上输出显示了所有包含单词“commit”的提交的提交消息。

还有许多其他可用的过滤选项,例如按文件名、内容等进行过滤。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程