git log 命令
// 终端显示 git log 命令的输出结果
zhanghuabin-mac:course-git-blog-project zhanghuabin$ git log
commit a3dc99a197c66ccb87e3f4905502a6c6eddd15b1
Author: Richard Kalehoff <richardkalehoff@gmail.com>
Date: Mon Dec 5 16:34:15 2016 -0500
Center content on page
commit 6f04ddd1fb41934c52e290bc937e45f9cd5949aa
Author: Richard Kalehoff <richardkalehoff@gmail.com>
Date: Mon Dec 5 16:30:40 2016 -0500
Add breakpoint for large-sized screens
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上面是这个仓库中的提交日志,显示了多次提交。每次提交显示了提交的 SHA、提交人、提交日期以及提交说明(一个简短描述,说明在这个提交中作了哪些更改)。下面的 : 冒号表示可以显示更多的输出行,我们可以按 J 键或向下箭头可以一次向下滚动一行。当冒号变为单词 END 时,表示最后一个提交。要离开分页器按下 q 键即可。
git log 命令用于显示仓库中所有 commit 的信息。默认情况下,该命令会显示仓库中每个 commit 的:
SHA
作者
日期
消息
git 使用命令行分页器 less 浏览所有信息。以下是 less 的重要快捷键:
要按行向下滚动,使用 j 或 ↓
要按行向上滚动,使用 k 或 ↑
用 d 键可以向下滚动半个页面,用 u 键可以向上滚动半个页面
要退出,使用 q
git log --oneline 选项用于更改 git log 显示信息的方式。此命令:
每行显示一个 commit
显示 commit 的 SHA 的前 7 个字符
显示 commit 的消息
git log --stat,用于更改 git log 显示信息的方式。此命令会:
显示被修改的文件
显示添加/删除的行数
显示一个摘要,其中包含修改/删除的总文件数和总行数
上图示例中,它会同时包括实际的代码更改或对 css 文件所做的补丁 输出。diff 差异和补丁指的是同一回事,补丁显示的是文件的原始版本和更新版本之间的差异。我们看到的是 css 文件,它出现在一个名为 a 的目录中,但你并不会在库中实际看到这个目录,然后是第二个版本,它出现在 b 目录中,因为它是第二个。这两个名称相同,因为我们看到的是同一个文件的两个不同版本。下一行显示的是文件更改前第一个版本的哈希值和更改后的哈希值,它们也是文件的新旧版本。下面是 CSS 文件的实际代码,前面带有加号的绿色行表示这些行是此次提交添加的。
@@ -38,6 +38,11 @@ p {
line-height: 1.5;
}
它可以告诉我们文件哪里做出了编辑,这说明在文件的较旧或原始版本中(-38),这段代码来自第 38 行并显示了六行代码。在文件的较新或当前版本中(+38),但现在有 11 行代码,原来的六行加上新的五行,变成了 11 行代码。
git 按行进行跟踪编辑,所以如果对一行进行编辑,它会显示该行被移除,然后再被添加。补丁输出的重要内容是我们正在查看的文件和修改,另外我们有时也需要知道文件中哪些地方进行了修改。
git log -p(--patch),用来更改 git log 显示信息的方式。此命令会向默认输出中添加以下信息:
显示被修改的文件
显示添加/删除的行所在的位置
显示做出的实际更改
git log -p 输出结果详细说明
git log --stat 和 git log -p 都是非常实用的命令。运行 git log -p --stat,它同时显示这两种信息,并且统计信息显示在补丁信息上方。
git log -p -w 中的 -w 忽略所有的空间空格更改。即使一行有空格而另一行没有空格,这也会忽略差异。
上一部分需要在补丁输出中不断向下滚动,以便找到正确的 commit 并查看其信息。如果能显示特定 commit 的详情,而不用关心仓库中的所有其他内容?
实际上有两种实现方式!
向 git log 提供你要查看的 commit 的 SHA
使用新的 git show 命令
可以向所有这些命令提供 commit 的 SHA 作为最后一个参数:
通过提供 SHA,git log -p 命令将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息。
git show,另一个显示特定 commit 的命令。它将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样。
但是,git show 可以与我们了解过的大部分其他选项一起使用:
--stat - 显示更改了多少文件,以及添加/删除的行数
-p 或 --patch - 显示默认补丁信息,但是如果使用了 --stat,将不显示补丁信息,因此传入 -p 以再次添加该信息
-w - 忽略空格变化
更多 git 配置参数 可查看 https://git-scm.com/docs/git
|