GitHub:搜索旧版本的文件

时间:2011-01-16 13:09:46

标签: git github

我知道使用GitHub我可以在回购中搜索我文件的所有当前版本。但是,我还想搜索旧版本的repo文件。例如,比方说,我曾经在我的代码中有一个名为get_info()的函数,但是在几个版本之前删除了它,是否可以搜索get_info并找到代码。如果使用GitHub是不可能的,可以从git命令行吗?

修改

感谢@Mark Longair展示如何通过git命令行完成此操作。如果在GitHub中不可能,那么它将是一个很棒的功能。

1 个答案:

答案 0 :(得分:103)

目前,我不相信可以在github网站上的存储库代码的完整历史记录中进行搜索 - 最接近的是在{{3上的“代码搜索”选项中搜索存储库的当前代码。 }}

但是,从命令行中,您可以找到引入或删除提及get_info的行的任何提交,并-S选项git log。 e.g:

git log -Sget_info -p

(n.b。-S与搜索词之间不应有空格)

(另请注意:要搜索多个单词,请在'中包围):

git log -S'get info' -p

因此,至少应该找到首次引入函数的提交和删除函数的提交。我添加了-p,因此您也可以看到补丁 - 如果大量的提交引入了可能有用的功能的更改。如果该函数仅在另一个分支上,则使用--all搜索所有分支也可能很有用。

this page在下面的评论中指出,git 1.7.4将引入-G选项作为替代方案 - 这一变化在Junio Hamano(git maintainer)最近的博客文章中进行了总结:{ {3}}