如何在整个 Git 仓库的历史记录中搜索单词?

10
假设我记得我在某个文件中保存了一个单词 "XYZword",但是它被删除了,我只记得这个单词的前缀 "XYZ",但没有关于时间或文件的任何记忆。如何在整个历史记录中使用grep搜索这个"XYZ"

2个回答

17

搜索当前分支的完整历史记录并获取行号:

git grep -n "XYZ" $(git rev-list --all)

1
我刚刚从这里得到了"参数列表太长"的错误提示。 - Double_A
我发现(通过经验)git grep 似乎只在当前工作目录中查找。我需要从根目录运行这个命令,才能找到其他子目录中包含目标文本的文件。 - undefined

4

git log -S[SOME_WORD_OR_REGEX]命令将搜索您的历史记录,查找包含您提供的单词或正则表达式的更改。有关更多信息,请查看gitdiffcore(7)中的pickaxe条目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接