Git log - 查找函数的最后一次使用

时间:2016-07-26 19:13:21

标签: git

是否有一种简单的方法可以找出某个功能何时停止使用?我发现有太多次我认为我正在使用的功能,但似乎没有任何东西可以调用它,这让我想知道我何时以及为什么这样做。

1 个答案:

答案 0 :(得分:4)

git log -S

来自git log --help

  

-S<串GT;

     

查找改变文件中指定字符串出现次数(即添加/删除)的差异。用于脚本编写者的使用。

     

当你正在寻找一个确切的代码块(比如一个结构体)时,它很有用,并且想要知道该块首次出现以来的历史:迭代地使用该特征来提供有趣的块。 preimage回到              -S,并继续,直到你得到块的第一个版本。

git log --patch | git log -p

这显示了每次提交的diff补丁。行开头的+(突出显示为绿色)是添加的行。行开头的-(突出显示为红色)是已删除的行。

示例:组合在一起:

我想说我最后一次使用python函数subprocess.call()。我们可以搜索字符串subprocess\.call\(作为-S diff选项的参数,如下所示:

git log -Ssubprocess\.call\( --patch

这种git log的使用将显示每个具有您指定的文本更改的提交的日志,并显示每个提交的差异补丁。

加成:

如果我想知道我如何使用一个不再有任何调用函数的函数,我只想:

text=subprocess\.call\(
git log --patch -S$text | grep -m 10 "$text"

或者如果我想知道最后一次被特别删除的话:

text=subprocess\.call\(
git log --patch -S$text | grep -m 1 "^-.*$text"