我知道使用GitHub我可以在回购中搜索我文件的所有当前版本.但是,我还想搜索旧版本的repo文件.例如,比方说,我曾经在我的代码中有一个名为get_info()的函数,但是在几个版本之前删除了它,是否可以搜索get_info并找到代码.如果不能使用GitHub,是否可以从git命令行?
编辑
感谢@Mark Longair展示如何从git命令行完成此操作.如果在GitHub中无法实现,那将是一个很棒的功能.
Mar*_*air 111
目前,我不相信可以在github网站上的存储库代码的完整历史记录中进行搜索 - 最接近的是在本页的"代码搜索"选项中搜索存储库的当前代码.
但是,从命令行,您可以找到引入或删除get_info
使用-S
选项提及的行的任何提交git log
.例如:
git log -Sget_info -p
Run Code Online (Sandbox Code Playgroud)
(nb -S
和搜索词之间应该没有空格)
(另请注意:要搜索多个单词,请环绕'
):
git log -S'get info' -p
Run Code Online (Sandbox Code Playgroud)
因此,至少应该找到首次引入函数的提交和删除函数的提交.我添加了-p
所以你也可以看到补丁 - 如果很多提交引入了改变,提到了可能有用的功能.如果该函数仅在另一个分支上,则用于--all
搜索所有分支也可能很有用.
Jefromi在下面的评论中指出,git 1.7.4将引入该-G
选项作为替代 - 这一变化在Junio Hamano(git maintainer)最近的博客文章中进行了总结:http://gitster.livejournal.com/48191.html
Mik*_*kel 14
git log -G'your text' -p --all
Run Code Online (Sandbox Code Playgroud)
请注意文档中的以下内容;
[...]考虑在同一文件中进行以下差异的提交:
Run Code Online (Sandbox Code Playgroud)git log -G'your text' -p --all
虽然 git log
-G"frotz\(nitfol"
将显示此提交,但 git log-S"frotz\(nitfol" --pickaxe-regex
不会(因为该字符串出现的次数没有改变)。
感谢马克和卡斯卡贝尔指出了正确的方向
归档时间: |
|
查看次数: |
34713 次 |
最近记录: |