我试图找到所有在git仓库中引入/移除特定字符串或其任意大写形式(例如foobar
,FooBar
,fooBar
)的提交。
基于这个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条答案
按热度按时间8ehkhllq1#
-i
与镐配合使用的方法(参见commit accccde,git 1.7.10,2012年4月)是:或
或
注意,在1.x版本的git中,这个选项不适用于regexp,只适用于固定的字符串,只适用于git 2.0和commit 218c45a,git 2.0,May 2014之后的regexp。