您可能不了解git log的有用技巧 - Git Better


如果您使用Git有一段时间,则应该遇到git log。众所周知,git log是一个简单的命令,可以帮助我们查看更改或项目历史记录。
即使如此简单,它仍然是一个非常强大的工具,它带有许多选项,可帮助我们查看项目更改及其结构。我们将在本文中看到一些最常用的选项。

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

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

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

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

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

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

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

git log --after="yesterday" // shows only commits from yeserday

git log --after=
"today" // shows only today commits

git log --before=
"10 day ago" // omits last 10 days commits

git log --after=
"1 week ago" //show only commits from last week

git log --after=
"2 week ago"

git log --after=
"2 month ago" // shows only last 2 months commits

git日志与差异更改

git log -p

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

按作者过滤提交

git log --author="Srebalaji"

上面的命令将过滤出特定作者所做的提交。请注意,Git按正则表达式模式过滤掉。因此,不必担心确切的名称匹配或区分大小写。
Git日志可以采用多个选项,因此您可以根据需要组合选项。例如,
git log --after="1 week ago" --author="srebalji" -p

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

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

git log --grep="ISSUE-43560"

上面的命令将按各自的模式过滤提交。并且请记住,默认情况下它区分大小写。
要使搜索不区分大小写,可以传递-i参数
git log -i --grep="issue-43560"

以下命令使用正则表达式模式搜索,并将搜索两个问题ID。
git log -i --grep="issue-43560\|issue-89786"

按文件过滤提交
有时,您需要进行所有已影响某些特定文件的提交更改。这将在许多地方出现。

git log main.rb

该命令将过滤对相应文件进行更改的提交。
您还可以将多个文件传递给它。
git log main.rb search.rb login.rb

您可以看到我已经传递了三个文件进行过滤。
请记住,您还可以传递多个选项。
git log -i --grep="fix " main.rb search.rb

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

按文件内容过滤提交
您可能需要在提交历史中添加的源代码中搜索特定的字符串。这可以通过

git log -S"function login()"

上面的命令将搜索字符串“ function login()”。默认情况下,区分大小写。
您可以通过添加-i使其不区分大小写。要查看内容,您可以查看差异更改。
git log -i -S"function login()" -p

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

git log --merges

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

显示分支之间的差异
我们在先前的一个问题中已经看到了此命令。

git log master..develop

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

自定义格式日志消息
Git还提供了用于自定义日志消息格式的选项。您可以查看自定义漂亮选项以获得更多选项。
例如,

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