如何在 Git 中查看修订历史?
假设您想查看 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 <[email protected]> commit date => Sat Nov 8 10:57:57 2020 +0100 author => Tom Cruise <[email protected]> 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 Or $ git log −p
以上命令的输出显示在屏幕截图中
delI@DESKTOP-N961NR5 MINGw64 /e/tut_repo (master) $ git log −p commit c81c9abe7c4c8273aIIab7d20a3aacObe54bfOOc (HEAD −> master) Author : Kiran <[email protected]> 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