git 日志

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

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

git log —单行


gitlog --oneline



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





按时间段过滤提交

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


gitlog --after= "2020-15-05"


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


gitlog --after= "2020-15-05" --before= "2020-25-05"


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

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


gitlog --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日志与差异更改


gitlog -p


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



在上图中,您可以看到git diff的变化。

按作者过滤提交


gitlog --author= "Srebalaji"


上面的命令将过滤掉特定对象所做的提交
作者。 请注意,Git按正则表达式模式过滤掉。 所以不用担心
有关确切名称匹配或区分大小写的信息。

Git日志可以采用多个选项,因此您可以根据需要组合选项。 例如,


gitlog --after= "1 week ago" --author= "srebalji" -p


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

通过日志消息过滤提交

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


gitlog --grep= "ISSUE-43560"


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

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


gitlog -i --grep= "issue-43560"


下面的命令正在使用正则表达式模式搜索,并将搜索两个问题ID。


gitlog -i --grep= "issue-43560\|issue-89786"


按文件过滤提交

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


gitlog main.rb


该命令将过滤对相应文件进行更改的提交。

您还可以将多个文件传递给它。


gitlog main.rb search.rb login.rb


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

请记住,您还可以传递多个选项。


gitlog -i --grep= "fix " main.rb search.rb


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

按文件内容过滤提交

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


gitlog -S "function login()"


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

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


gitlog -i -S "function login()" -p


仅显示合并提交

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


gitlog --merges


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

显示分支之间的差异

我们已经在以前的问题之一中看到了此命令。


gitlog master..develop


该命令将帮助您显示来自development的所有提交,但是
在master分支中不存在。 这样,您可以知道
许多新的提交被添加到了不存在的开发分支中
主分支。 并确保您在
比较之前是本地的。

自定义格式日志消息

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

例如,


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



您可以在上图中看到提交日志是自定义的
格式化。 这很容易,如果您想查看,它会派上用场
仅日志的特定详细信息。

翻译自: https://hackernoon.com/ten-useful-git-log-tricks-7nt3yxy

git 日志