Nik*_*hev 44 git version-control
我在我的Git存储库中有一个包含单词"Foo"的行,之前有几百个提交.
如果有没有办法找到它的修订号,那是最后一次没有购买FishEye?
Von*_*onC 83
这可以通过pickaxe(-S)选项来解决gitlog
git log -SFoo -- path_containing_change
Run Code Online (Sandbox Code Playgroud)
(你甚至可以添加一个时间范围:--since=2009.1.1 --until=2010.1.1)
-S<string>
Run Code Online (Sandbox Code Playgroud)
寻找引入或删除实例的差异
<string>.
请注意,这与简单地出现在diff输出中的字符串不同; 有关更多详细信息,请参阅gitdiffcore(7)中的pickaxe条目.
diffcore-pickaxe
Run Code Online (Sandbox Code Playgroud)
此转换用于查找表示接触指定字符串的更改的文件对.
当diffcore-pickaxe在使用时,它会检查是否有filepairs其"原始"方有指定的字符串,其"结果"的一面没有.
这样的文件对表示"此变更集中出现的字符串".
它还检查丢失指定字符串的相反情况.
2014年更新:
git log -p --all -S 'search string'
git log -p --all -G 'match regular expression'
Run Code Online (Sandbox Code Playgroud)
这些日志命令列出了添加或删除给定搜索字符串/正则表达式的提交,(通常)最近更新.
在-p(--patch)选项会显示相关的差异,其中已添加或删除的模式,所以你可以看到它在上下文中.找到一个添加了你正在寻找的文本的相关提交(例如
8beeff00d),找到包含提交的分支:
git branch -a --contains 8beeff00d
Run Code Online (Sandbox Code Playgroud)
(我在" 如何列出包含给定提交的分支? "中引用了最后一个命令.)
| 归档时间: |
|
| 查看次数: |
7147 次 |
| 最近记录: |