假设我有一个git,过去有一个修订版/提交,其中包含哈希aaaaaaa
,它描述了一个状态,其中包含三个文件a.txt
,b.txt
和{{1 }}。
因此,假设还有更多更改和提交,并且当前HEAD在提交c.txt
上,在其他工作中该文件具有文件bbbbbbb
,a.txt
和e.txt
,之前的f.txt
和b.txt
已被删除。
现在,我要做的是像在提交c.txt
中一样在文件中搜索一个短语,然后查找它出现在哪个文件中。
通常,我可以这样做:
aaaaaa
...但是,假设我不是要签出,并且我想将我的当前状态保持在HEAD,即提交$ git checkout aaaaaaa
$ grep -r 'phrase' .
。
是否有一个git命令,它使我可以像提交bbbbbbb
一样浏览所有文件,而检出的文件当前位于aaaaaaa
的HEAD上,而不必检出{{ 1}}?
答案 0 :(得分:3)
git grep
采用可选的tree
参数。就这么简单:
git grep 'phrase' aaaaaaa
-r
和.
隐含git grep
。