如何将字符串传递给 git log -S 而不仅仅是一个单词?
How can I pass a string to git log -S instead of just a word?
我想搜索包含字符串 "hello world" 的提交或在文件中包含该短语的任何提交。
git log -SHello World
无效
git log -S'Hello World'
无效
git log -S"hello world"
无效
我一直在使用:git log -i --grep='hello world'
但是这个只适用于提交消息。
I wanted to search for the commit that either contains the string "hello world"
搜索提交非常简单:
git log | grep "new image"
or any commit that included that phrase inside of a file.
For this you will need to loop on each commit, check it out and then search for the give string.
对于此类任务,您需要使用 git filter-branch ...
# you will need something like:
git filter-branch --tree-filter "
find .
-type f
-exec grep -rnw '/path/to/somewhere/' -e "pattern""
镐搜索 (git log -S
) 在提交中查找 addition 或 removal 的单词(以及 不在提交消息中)。
参见comment on this answer。
如果您有包含该词的提交 消息,但提交内容本身没有 添加的“hello world
” 或 removed (意思是,例如,它已经存在于之前的提交中),该提交将 not 被报告。
除此之外,git log -S 'This repos'
或 git log -S'This repos'
应该可以正常工作。
命令git log "-Shello world"
怎么样?
我想搜索包含字符串 "hello world" 的提交或在文件中包含该短语的任何提交。
git log -SHello World
无效
git log -S'Hello World'
无效
git log -S"hello world"
无效
我一直在使用:git log -i --grep='hello world'
但是这个只适用于提交消息。
I wanted to search for the commit that either contains the string "hello world"
搜索提交非常简单:
git log | grep "new image"
or any commit that included that phrase inside of a file. For this you will need to loop on each commit, check it out and then search for the give string.
对于此类任务,您需要使用 git filter-branch ...
# you will need something like:
git filter-branch --tree-filter "
find .
-type f
-exec grep -rnw '/path/to/somewhere/' -e "pattern""
镐搜索 (git log -S
) 在提交中查找 addition 或 removal 的单词(以及 不在提交消息中)。
参见comment on this answer。
如果您有包含该词的提交 消息,但提交内容本身没有 添加的“hello world
” 或 removed (意思是,例如,它已经存在于之前的提交中),该提交将 not 被报告。
除此之外,git log -S 'This repos'
或 git log -S'This repos'
应该可以正常工作。
命令git log "-Shello world"
怎么样?