如何在 Git 中查看修订历史记录?

gitlinuxopen sourcesoftware & coding

假设您想查看 Git 仓库的所有提交。git log 命令会返回对仓库的所有提交。此命令按时间顺序列出最新的提交,最新的提交显示在最前面。

git log 命令的语法如下 −

$ git log

以下屏幕截图显示了如何使用该命令查看当前仓库中的所有提交。

dell@DESKTOP-N961NR5 MINGW64 /e/tut_repo (master)
$ git log
commit cbc01c8399faf9063eca4ba7781d08eebbe56aaa (HEAD −> master)
Author : "Kiran <kiran.p@tutorialspoint . com>
Date: Fri Jan 22 19:38:42 2021 +0530
   file2. txt

commit 8100770d7274e6bae4e252d7b3c461020b8bc5b2
Author : "Kiran <kiran.p@tutorialspoint . com>
Date : Fri Jan 22 19:28:34 2021 +0530
   file1. txt

该命令显示历史记录中每个提交的以下详细信息 −

  • 安全哈希算法 (SHA) 或提交哈希 − 是紧跟"提交"一词的一长串唯一字符串。包含提交消息、提交者、提交日期、作者、作者日期以及根对象(即文件夹)哈希值的元数据,使用 SHA-1 哈希算法进行哈希处理,以生成提交哈希值。生成提交哈希值的伪代码如下所示。 −

SHA1 (commit message => "test commit"
committer => Tom Cruise <tom.cruise@gmail.com>
commit date => Sat Nov 8 10:57:57 2020 +0100
author => Tom Cruise <tom.cruise@gmail.com>
author date => Sat Nov 8 10:57:57 2020 +0100
tree => 9c435a86e664be00db0d973e981425e4a3ef4f4d)

更改上述任何值都会改变提交哈希值,从而帮助 Git 维护完整性。

  • 作者 − 最初编写代码的人

  • 日期 − 提交日期和时间

  • 提交消息 − 一些文本(例如,注释或关于提交的一些描述)

上述输出中的 (HEAD−> master) 表示当前分支,此处为 master 分支。

要浏览 git log 命令的结果,请使用 −

  • j 或 ↓ 向下滚动一行

  • k 或 ↑向上滚动一行

  • 空格键 或 Page Down 按钮向下滚动一页

  • b 或 Page Up 按钮向上滚动一页

  • q 退出日志

要查看特定提交的详细信息,请将提交哈希值附加到 git log 命令。以下示例将显示哈希值为 63096f31b85c0cfe26ffdce922564597fab0cf99 的提交以及在此提交之前的所有提交。

$ git log 63096f31b85c0cfe26ffdce922564597fab0cf99

一些可与 git log 命令一起使用以自定义显示信息的常用标志是 −

∉ − −oneline −如果使用此标志 −,则提交历史记录将按以下格式显示。

  • 每行一个提交

  • SHA 的前七个字符

  • 提交消息

执行以下命令 −

$ git log − − oneline

以下屏幕截图显示了使用此标志时的输出 −

cbc018 (HEAD−>master) file2.txt
8100770 file1.txt

∉ −−patch 或 −p − 此标志可用于了解每个文件中的具体更改。换句话说,如果使用此标志,则会显示每个提交的以下详细信息:

  • 已修改的文件

  • 已添加或删除的行的位置

  • 您所做的任何具体更改

$ git log −− patch
或
$ git log −p

上述命令的输出如屏幕截图所示

delI@DESKTOP-N961NR5 MINGw64 /e/tut_repo (master)
$ git log −p
commit c81c9abe7c4c8273aIIab7d20a3aacObe54bfOOc (HEAD −> master)
Author : Kiran <kiran.p@gmail.com>
Date: Sun Jan 24 19:28:41 2021 +0530

   This is a short description
   This has to be a long description of why the
   commit was done. This should be multi line and should
   give more description

diff --git a/hello.txt b/hello.txt
index 4792a4a..9011447 100644
--- a/hello.txt
+++ b/hello.txt
@@ -2, 3, +2, 4 @@ hello , Cat
hello ,dog
hello again
hello
+hello again

相关文章


有用资源