0%

您可能不知道的git log命令实用小技巧

本文翻译自Useful tricks you might not know about git log

如果您使用Git一段时间,那么您应该接触过git log。 众所周知,git log是一个简单的命令,可以帮助我们查看变更或项目历史记录。

即使如此简单,它仍然是一个非常强大的工具,它带有许多参数,可以帮助我们查看项目变更及其结构。 我们将在本文中看到一些最常用的参数。

git log —oneline

1
git log --oneline

此命令可帮助您以更简洁的方式查看提交。 它会将每次提交压缩到一行,并且只有很少的信息,例如较短的提交哈希值和提交消息。

按时间段过滤提交

这些命令将按给定的时间间隔过滤提交。 例如,-after参数将仅过滤在给定时间段之后的提交,而-before参数将仅过滤在给定时间段之前的提交。

1
git log --after="2020-15-05"

上面的命令将仅显示2020年5月15日之后的提交

1
git log --after="2020-15-05" --before="2020-25-05"

上面的命令将仅显示5月15日至5月25日的提交

您还可以使用以下日期格式

1
2
3
4
5
6
7
8
9
10
11
git log --after="yesterday" // 仅显示昨天的提交

git log --after="today" // 仅显示今天提交

git log --before="10 day ago" // 忽略最近10天提交

git log --after="1 week ago" // 仅显示上周的提交

git log --after="2 week ago"

git log --after="2 month ago" // 仅显示最近两个月的提交

git日志与差异更改

1
git log -p

该命令将显示变更差异的日志。 这样您就可以知道每次提交中所做的更改。

在上图中,您可以看到git的变更差异。

按作者过滤提交

1
git log --author="Srebalaji"

上面的命令将过滤出特定作者所做的提交。 请注意,Git按正则表达式模式过滤。 因此不必担心必须使用精确的名称匹配或区分大小写。

git log命令可以接受多个参数,因此您可以根据需要进行组合。 例如,

1
git log --after="1 week ago" --author="srebalji" -p

上面的命令将过滤该作者过去一周的提交,并显示差异变更。

通过日志消息过滤提交

有时,您需要通过日志消息过滤提交。 Git接受一个正则表达式来搜索日志消息并显示所有匹配的提交。

1
git log --grep="ISSUE-43560"

上面的命令将按该模式过滤提交。 请记住,默认情况下,它区分大小写。

要使搜索不区分大小写,可以传递-i参数

1
git log -i --grep="issue-43560"

下面的命令使用正则表达式按两个问题ID来同时进行搜索。

1
git log -i --grep="issue-43560\|issue-89786"

通过文件过滤提交

有时,您需要根据已受影响的某些特定文件,查看该文件下所有的提交更改。 这将在许多场景出现。

1
git log main.rb

此命令将过滤该文件的提交记录。

您还可以同时传递多个文件参数值。

1
git log main.rb search.rb login.rb

您可以看到我已经传递了三个文件进行过滤。

请记住,您还可以传递多个参数。

1
git log -i --grep="fix " main.rb search.rb

该命令将过滤出对指定文件所做的提交更改,还将通过给定的搜索模式匹配日志消息。

通过文件内容过滤提交

您可能需要在提交历史中,按特定的字符串,添加的源代码中搜索。 这可以通过下面的命令

1
git log -S"function login()"

上面的命令将搜索字符串“ function login()”。 默认情况下,区分大小写。

您可以通过添加-i使其不区分大小写。 如需查看具体内容,您可以查看差异更改。

1
git log -i -S"function login()" -p

仅显示合并提交

此命令有助于我们了解对当前分支所做的合并。

1
git log --merges

上面的命令将仅仅显示当前分支中的合并提交。

显示分支之间的差异

1
git log master..develop

该命令将帮助您显示所有来自development的提交,但这些提交不在master分支中。这样,您可以知道有多少新提交添加到了master分支中不存在的develop分支中。请在比较之前确保您已经进行了本地的更新。

#自定义格式日志消息

Git还提供了用于自定义日志消息格式的参数。 您可以尝试使用这些自定义漂亮参数以获得更多信息。

例如,

1
git log --pretty=format:"%Cred%an - %ar%n %Cblue %h -%Cgreen %s %n"

您可以在上图中看到提交日志是自定义格式的。 这非常简单,如果您只想查看日志的特定详细信息,它会派上用场。

今天就这样:)

如有任何疑问,您可以回复此电子邮件或发表评论。

谢谢,下周再见:) :)