不敏感的git镐搜索
我试图找到所有提交的特定字符串或任意大小写(例如foobar
, FooBar
, fooBar
)在git存储库中引入/删除。
基于这个SO回答(其中涵盖了不同的基本用例),我首先尝试了使用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。
-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版本,此选项不适用于正则表达式,只适用于固定字符串。 它仅适用于git 2.0和提交218c45a,git 2.0,2014年5月以后的正则表达式。
链接地址: http://www.djcxy.com/p/19687.html