# 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)
6条答案
按热度按时间o0lyfsai1#
正如AsGoodAsItGets在其中一条评论中指出的那样,在VS Code github上有一个feature request未决,这将允许我们这样做。
在此期间,我有一个解决方案:
1.关闭所有打开的文件
1.开源控制
1.右键单击
Changes
并选择Open changed files
。请注意,它也将打开已删除的文件。1.转到
Search
并选择Search only in Open Editors
不是很理想,但这就是我搜索console.log剩余数据的方式;)
dbf7pr2w2#
参考这些屏幕截图。您可以在“轻松打开文件”中搜索。
也可以使用文件包含功能
如果你想找到所有的历史提交,其中 commit message 包含给定的单词,使用
如果你想找到所有在 file contents 中添加或删除了“word”的提交(更确切地说:其中“单词”的出现次数改变),即搜索 * 提交内容 *,使用所谓的'镐'搜索与
在现代git中也有
查找添加或删除的行与“word”匹配的 * 差异 *(也是 * 提交内容 *)。
请注意,
-G
默认接受正则表达式,而-S
接受字符串,但可以使用--pickaxe-regex
修改为接受正则表达式。gk7wooem3#
1.通过键入
^
、使用View > Terminal
菜单选项或运行View: Toggle Integrated Terminal
命令打开终端。1.运行
git diff BRANCH1..BRANCH2 -G REGEX
。将BRANCH1
替换为要比较的分支,将BRANCH2
替换为当前分支,将REGEX
替换为您正在搜索的关键字的正则表达式。如果希望在VSCode编辑器中而不是在集成终端中查看结果,请将
| code -
附加到git diff
命令。oaxa6hgo4#
从命令行:
git grep "pattern"
将在跟踪文件中查找pattern
。请注意,它将搜索搜索文件的 * 完整内容 *,而不仅仅是diff部分(如@NickMcCurdy和@KunalVohra所建议的那样,将是
git diff -G
或git log -G
)。如果你指定了一个提交引用,它会查看存储在该提交中的版本,例如:
git diff --name-only
将列出在两次目标提交之间修改的文件通过结合两者:
你可以搜索
pattern
,只在最后一次提交的mmodified文件中查找。您可以添加
-i
进行不区分大小写的搜索:git grep -i "pattern"
;如果你想查看自提交
eacf32
以来更改的文件:如果你想搜索“自从分支分支分支离开master以来修改过的文件”:
我不知道有什么vscode扩展允许你运行
git grep
,你可以从VSCode中打开的bash终端运行上面的命令。@NickMcCurdy建议:你可以在这个命令的末尾加上
| code -
,在vscode编辑器中打开结果。eoigrqb65#
你不能
两个选择:
1.在终端中使用以下命令,在所有暂存文件中搜索字符串**。
git grep --cached "myString" $(git diff --cached --name-only)
提示:如果是#2,那么创建一个脚本并将其放入.bashrc!
~/scripts/search.sh
~/.bashrc
$ search test
ivqmmu1c6#
1.右键单击一个选项卡,然后单击“全部关闭”(并不总是需要)
1.按cmd/ctrl+shift+p查看编辑器命令
1.选择“Git:打开所有更改”(打开所有更改的文件)
1.点击放大镜打开左侧搜索
1.单击图书图标选择“仅在打开的编辑器中搜索”
注1:在这个屏幕截图中,我正在搜索“console.log”。
注2:“要包含的文件”行是否为空并不重要。