如何通过提交信息在代码库中查找Git提交记录?

8
我们最近将我们的SVN存储库转换为GIT。似乎在此转换中我们丢失了一些提交,因此我们想要验证这一点。
因此,我们希望找到每个svn提交的匹配git提交,以检查转换是否实际发生。 $ git log|grep "some partial commit message"不足以使用,因为它只通过直接祖先遍历并忽略不是直接祖先的分支。 $ git show <commit-hash>无法工作,因为svn没有sha1sums。
我找到的最接近的方法是:$ git reflog show --all --grep="releasenotes"|xargs git show --shortstat但是这似乎并不完全有效,因为它似乎在除提交消息之外的更多位置上进行了grep(我们得到了误报)。
我也尝试使用了这个:$ git rev-list --all|xargs -n1 bash -c 'git show|head -n10'|grep -i release 基本上,我缺少一个打印提交消息而不包括差异的好方法。
[编辑]
我不确定,但我猜这应该列出存储库中的所有提交消息。
git rev-list --all|xargs -n1 git log -n1

阅读git-log的man页会有所帮助:您可以使用类似于git log --all --format=<format> | grep <grep options>的命令,其中<format>将是类似于man页中详细说明的“SHA-提交消息”的内容。 - Nevik Rehnel
3个回答

17

您可以在git log命令中使用--all选项。

git log --all --oneline --graph --decorate | grep "message"

等价于

git log --all --oneline --graph --decorate --grep "message"

或者如果你想要上下文,并且没有很多提交记录,你可能想做类似于以下的事情

git log --all --oneline --graph --decorate | less
/ message

这样你就可以看到你的提交相对于其他提交的位置。


比我的回答更完整。+1 - VonC

9

1

您也可以使用图形用户界面(GUI)。

gitk

它将打开一个图形用户界面,然后在包含框中编写您的提交消息,并按回车键。

它将显示所有匹配的提交并进行突出显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接