从命令行:
-
git grep "pattern" 将在跟踪文件中查找 pattern。
请注意,它将搜索已搜索文件的完整内容,而不仅仅是差异部分(git diff -G 或 git log -G,正如 @NickMcCurdy 和 @KunalVohra 所建议的那样)。
如果您指定提交引用,它将查看存储在该提交中的版本,例如:
# this will look into the files as they are on disk (working tree) :
git grep "pattern"
# this will look into files as stored in the last commit :
git grep "pattern" HEAD
-
git diff --name-only 将列出两次目标提交之间修改的文件
将两者结合起来:
git grep "pattern" HEAD -- $(git diff --name-only HEAD^ HEAD)
您可以搜索pattern,只查看上次提交修改的文件。
您可以添加-i 进行不区分大小写的搜索:git grep -i "pattern";
如果您想查看自提交 eacf32 以来更改的文件:
# change the file listing part to :
$(git diff --name-only eacf32 HEAD)
如果你想搜索“自分支分支主分支后被修改”的文件:
$(git diff --name-only master...HEAD) # that's 3 dots
我不知道允许您运行git grep 的 vscode 扩展,您可以从在 VSCode 中打开的 bash 终端运行上述命令。
正如@NickMcCurdy 建议的那样:您可以在此命令末尾添加| code - 以在vscode 编辑器中打开结果。