我需要找到从存储库中的任何文件中添加或删除的特定字符串的每个实例。
到目前为止我已经尝试过
git log -S'string' --all
git log --follow -p path/to/file
git show --pretty="format:" --name-only <hash>
git diff $(git log -S'string' -i --all --pretty="%H") | tee output.txt
以各种组合。
我所能得到的只是一个包含数千个文件的列表,这些文件是涉及“字符串”的提交的一部分。我只需要那些在某些时候包含“字符串”的文件的列表。
最佳答案
git log -Sstring -p
提供所有输出,并且很容易提取文件名:
git log -p -Sstring --all | grep '^---\|^+++' | grep -v /dev/null \
| sed 's%^\(---\|+++\) [ab]/%%'
关于Git 搜索 repo 以查找曾经包含字符串的所有文件的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17346195/