我想要查找包含字符串“hello world”或任何包含该短语的文件的提交。
git log -SHello World
不起作用
git log -S'Hello World'
不起作用
git log -S"hello world"
不起作用
我一直在使用:git log -i --grep='hello world'
但这仅适用于提交消息。
镐头搜索(git log -S
)查找提交中单词的添加或删除(而不是在提交消息中)。
请参见此答案的评论。
如果您有一个包含该单词的提交消息,但提交内容本身没有将“hello world
”作为添加或删除(例如,它已经存在于以前的提交中),则不会报告该提交。
除此之外,git log -S 'This repos'
或git log -S'This repos'
应该可以正常工作。
关于命令git log "-Shello world"
怎么样?
git log -S "hello world"
或 git log -S"hello world"
是一样的。 - VonCgit log | grep "new image"
git filter-branch ...
。# you will need something like:
git filter-branch --tree-filter "
find .
-type f
-exec grep -rnw '/path/to/somewhere/' -e "pattern""
\;
,然后模式应该用单引号括起来,因为整个命令已经用双引号括起来了,这意味着模式实际上没有被引用。最后,reflog似乎实际上进行了一些重写,即使它没有改变任何东西...对我来说,问题在于git log -S'pattern'
似乎找不到所有提交,甚至不是我知道匹配模式的提交。这真让人沮丧。 - mxmlnkn
git log -S 'This repos'
对我来说是有效的。你使用的是哪个版本的Git? - Whymarrh