不区分大小写的git pickaxe搜索

时间:2014-08-19 13:36:04

标签: git

我试图找到在git存储库中引入/删除特定字符串或其任意大小写(例如foobarFooBarfooBar)的所有提交。

基于此SO answer(涵盖不同的基本用例),我首先尝试使用git grep

git rev-list --all | xargs git grep -i foobar

这非常糟糕,因为它只提供了关于字符串是否存在于提交中的信息,所以我最终得到了大量多余的提交。

然后我尝试了pickaxe,这让我大部分都在那里,例如

git log --pickaxe-regex -S'foobar' --oneline

这只得到小写foobar。我尝试了-i标记,但这似乎并不适用于--pickaxe-regex选项。然后我使用这样的模式,这让我更进一步:

git log --pickaxe-regex -S'.oo.ar' --oneline

有没有办法让--pickaxe-regex做一些不区分大小写的匹配?

我使用的是git v1.7.12.4。

1 个答案:

答案 0 :(得分:13)

-i与镐的使用方式(参见commit accccde,git 1。7。10,2012年4月)是:

git log -S foobar -i --oneline
# or
git log --regexp-ignore-case -Sfoobar
# or
git log -i -Sfoobar

请注意,对于1.x git版本,此选项不适用于正则表达式,只能使用固定字符串。它仅适用于reitxps,因为git 2.0和commit 218c45a,git 2。0,2014年5月。