Git log日志

本文概述

  • 如何退出git log命令?
  • 基本Git日志
  • Git Log Oneline
  • Git状态日志
  • Git log P或补丁
  • Git日志图
  • 过滤提交历史
版本控制系统的优点是它记录更改。这些记录使我们能够检索诸如提交, 找出错误, 更新之类的数据。但是, 如果我们无法浏览所有这些历史记录, 那么它们将毫无用处。此时, 我们需要git log命令。
Git日志是一个实用工具, 用于查看和读取存储库中发生的所有事件的历史记录。 git日志可以使用多个选项, 以使历史记录更加具体。
通常, git日志是提交的记录。 git日志包含以下数据:
  • 提交哈希, 它是由SHA(安全哈希算法)算法生成的40个字符的校验和数据。这是一个唯一的数字。
  • 提交作者元数据:作者信息, 例如作者姓名和电子邮件。
  • 提交日期元数据:这是提交时间的日期时间戳。
  • 提交标题/消息:这是提交消息中给出的提交的概述。
如何退出git log命令? 可能会发生这种情况, 运行git log命令, 然后停在那里。你想输入或返回bash, 但不能。当你单击Enter键时, 它将导航你到较旧的命令, 直到结束标记。
解决此问题的方法是按q(退出表示Q)。它将使你退出该情况, 并返回到命令行。现在, 你可以执行任何命令。
基本Git日志 Git日志命令是git最常用的命令之一。这是对Git最有用的命令。每次需要检查历史记录时, 都必须使用git log命令。基本的git log命令将显示最近的提交和头部的状态。它将用作:
$ git log

上面的命令将显示最后的提交。考虑以下输出:
Git log日志

文章图片
上面的命令列出了所有最近的提交。每个提交都包含一些由SHA算法生成的唯一sha-id。它还包括日期, 时间, 作者和一些其他详细信息。
我们可以在命令行上执行一些操作, 例如滚动, 跳转, 移动和退出。要在命令行上滚动, 请按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或补丁 git log patch命令显示已修改的文件。它还显示了添加, 删除和更新的行的位置。
它将用作:
$ git log --patch

要么
$ git log -p

通常, 我们可以说– patch标志用于显示:
  • 修改后的文件
  • 你添加或删除的行的位置
  • 已进行的特定更改。
考虑以下输出:
Git log日志

文章图片
上面的输出显示修改后的文件以及已添加或删除的行的位置。
Git日志图 Git log命令允许以图形形式查看你的git日志。要以图形形式列出提交, 请使用– graph选项运行git log命令。它将运行如下:
$ git log --graph

要使输出更具体, 可以将此命令与– oneline选项结合使用。它将运行如下:
$ git log --graph --oneline

过滤提交历史 我们可以根据需要过滤输出。这是Git的独特功能。我们可以在输出中应用许多过滤器, 例如数量, 日期, 作者等。每个过滤器都有其规格。它们可用于对输出执行一些导航操作。
让我们详细了解这些过滤器。
按金额:
我们可以使用git log命令限制输出提交的数量。这是最具体的命令。如果你对较少的提交感兴趣, 此命令将消除复杂性。
要限制git日志的输出, 包括-< n> 选项。如果只需要最后三个提交, 则可以在git log命令中传递参数-3。考虑以下输出:
Git log日志

文章图片
从上面的输出中可以看到, 我们可以限制git log的输出。
按日期和时间:
我们可以按日期和时间过滤输出。我们必须传递– after或-before参数来指定日期。这两个参数都接受各种日期格式。它将运行如下:
$ git log --after="yy-mm-dd"

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

文章图片
上面的命令列出了“ 2019-11-01”之后的所有提交。
我们还可以传递适用的参考声明, 例如“昨天”, “ 1周前”, “ 21天前”等。它将运行为:
git log --after="21 days ago"

上面的命令将显示21天前所做的提交。考虑以下输出:
Git log日志

文章图片
我们还可以跟踪两个日期之间的提交。要跟踪在两个日期之间创建的提交, 请在日期之前和之后传递一个语句引用。假设我们要跟踪“ 2019-11-01”和“ 2019-11-08”之间的提交。我们将如下运行命令:
$ git log --after="2019-11-01" --before="2019-11-08 "

上面的命令将显示日期之间的提交。考虑以下输出:
Git log日志

文章图片
上面的输出显示给定时间段之间的提交。我们可以使用– since和– until代替– after和– before。因为它们分别是同义词。
作者:
我们可以过滤特定用户的提交。假设我们只列出仅由特定团队成员进行的提交。我们可以使用-author标志来按作者名称过滤提交。该命令采用一个正则表达式, 并返回与该模式匹配的作者所做的提交列表。你可以使用确切的名称而不是模式。该命令将如下运行:
$ git log --author="Author name"

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

文章图片
从上面的输出中, 我们可以看到列出了作者ImDwivedi1的所有提交。
我们可以使用字符串代替正则表达式或确切名称。考虑以下语句:
$ git log --author="Stephen"

上面的语句将显示作者名称为Stephen的所有提交。作者的姓名不必完全匹配;它只是具有指定的短语。
众所周知, 作者的电子邮件还涉及作者的姓名, 因此我们可以将作者的电子邮件用作模式或精确搜索。假设我们要跟踪电子邮件服务为google的作者的提交。为此, 我们可以将通配符用作“ @ gmail.com”。考虑以下语句:
$ git log -author="@gmail.com"

上面的命令将显示模式中给定的作者提交的内容。考虑以下输出:
Git log日志

文章图片
通过提交消息:
通过提交消息过滤提交。我们可以使用grep选项, 它将作为author选项。
它将运行如下:
$ git log --grep=" Commit message."

我们可以使用简短形式的提交消息代替完整的消息。考虑以下输出。
Git log日志

文章图片
上面的输出显示了所有在其提交消息中包含单词commit的提交。
【Git log日志】还有许多其他过滤选项可用, 例如我们可以按文件名, 内容等进行过滤。

    推荐阅读