如何将字符串传递给git log -S而不是单词?

时间:2015-12-04 20:36:56

标签: git git-log

我想搜索包含字符串" hello world"的提交。或者在文件中包含该短语的任何提交。

git log -SHello World无法正常工作

git log -S'Hello World'无法正常工作

git log -S"hello world"无法正常工作

我一直在使用:git log -i --grep='hello world' 但是这个只适用于提交消息。

3 个答案:

答案 0 :(得分:5)

pickaxe搜索(git log -S)会在提交中查找单词的添加删除 in提交消息) 请参阅comment on this answer

如果你有一个包含该词的提交消息,但提交内容本身没有&#34; hello world&#34;由于已添加已删除(例如,它已经存在,来自之前的提交),该提交将报告。< / p>

除此之外,git log -S 'This repos'git log -S'This repos'应该可以正常使用。

答案 1 :(得分:0)

  

我想搜索包含字符串&#34; hello world&#34;的提交。

要搜索提交非常简单:

git 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""

答案 2 :(得分:0)

命令git log "-Shello world"怎么样?