首先在git中找到一行代码



我正在尝试跟踪一块代码(仅一行)。

使用责备只指出了一个提交,其中所讨论的这一行被作为提取方法样式的一部分移动。

我可以使用哪些技术来获得该提交,即第一次在代码库中存在特定的文本?

正如git答案所述:查找引入字符串的提交,您可以简单地使用

git log -S <line>
# or
git log -G <regex>

在存储库中找到第一次出现代码行。

来自log的官方Linux内核GIT文档:

-S<string>

寻找介绍或删除<string>实例的差异。请注意,这与仅出现在diff输出中的字符串不同。有关更多详细信息

-G<regex>

寻找添加或删除的线与给定的<regex>匹配的差异。

i通常做 git log -p filename并搜索(按/)给定文本。

这样,您会注意到该行的变化,如果过去的文本更改,则可以继续搜索(稍微)不同的文本。

我可能会满足于:

function allcommits { 
    git rev-list --reverse HEAD
}

for i in `allcommits` ;do  
    git co -f $i 2>/dev/null ; 
    echo commit:$i ;
    git grep -q 'that line of code' && break
done

您从第一个开始,然后在每个步骤中扫描所有文件,直到找到匹配项。

相关内容

  • 没有找到相关文章

最新更新