如何在git中给定版本中的所有文件进行grep?

时间:2019-06-06 14:33:30

标签: git

假设我有一个git,过去有一个修订版/提交,其中包含哈希aaaaaaa,它描述了一个状态,其中包含三个文件a.txtb.txt和{{1 }}。

因此,假设还有更多更改和提交,并且当前HEAD在提交c.txt上,在其他工作中该文件具有文件bbbbbbba.txte.txt ,之前的f.txtb.txt已被删除。

现在,我要做的是像在提交c.txt中一样在文件中搜索一个短语,然后查找它出现在哪个文件中。

通常,我可以这样做:

aaaaaa

...但是,假设我不是要签出,并且我想将我的当前状态保持在HEAD,即提交$ git checkout aaaaaaa $ grep -r 'phrase' .

是否有一个git命令,它使我可以像提交bbbbbbb一样浏览所有文件,而检出的文件当前位于aaaaaaa的HEAD上,而不必检出{{ 1}}?

1 个答案:

答案 0 :(得分:3)

git grep采用可选的tree参数。就这么简单:

git grep 'phrase' aaaaaaa

-r.隐含git grep