查找谁以及何时使用 GIT 删除了函数中的一行



我在像这样的大型回购中有一些ruby代码

def my_func params
  {
    :k1 => 1,
    :k2 => 2,
    :k3 => 3,
    :k4 => 4,
    :k5 => 5,
    :k6 => 6
  }
end

不知怎的,随着时间的推移,很少有键值对被删除。我想git blame是谁做的,但键值对太常见了,grep会导致太多误报。那么,有没有一种方法可以在所有提交中查看函数的更改

我尝试了git log -L /^s+def my_func/,/^s+def/ src/to/file.rb之类的东西,但没有成功。像SourceTree这样的GUI工具有"记录这个文件",它只显示diff,所以我无法判断更改属于哪个函数。我还搜索了stackoverflow并在谷歌上搜索了一下,没有找到通用的方法。

在这种情况下,您可以执行"反向指责"。您只需询问"新文件"和旧文件之间的"差异",删除就变成了添加,反之亦然。

git blame --reverse start..end file.ext

其中startend应该是提交签名。

对于每一行,它将显示最近的提交,其中行出现。然后,您可以派生下一个提交来了解发生了什么。

相关内容

  • 没有找到相关文章

最新更新