Get first commit在git中不包含行

Get first commit在git中不包含行,git,version-control,Git,Version Control,我感兴趣的是在git中找到一个commit,它通过识别最早的commit来删除一行,而最早的commit没有包含它 我知道git-dull-reverse命令,但它显示了最后一次提交,包括行,这是不同的。我尝试将其与git log-reverse-祖先路径结合使用。尝试找到我需要的提交,并取得了一些成功,但在某些情况下,结果是很乏味的 假设我有下面的图表 /----G---H---I / \ \ \ A----B---C---D---F--G \ / X 我知

我感兴趣的是在git中找到一个commit,它通过识别最早的commit来删除一行,而最早的commit没有包含它

我知道git-dull-reverse命令,但它显示了最后一次提交,包括行,这是不同的。我尝试将其与git log-reverse-祖先路径结合使用。尝试找到我需要的提交,并取得了一些成功,但在某些情况下,结果是很乏味的

假设我有下面的图表

  /----G---H---I
 /      \   \   \
A----B---C---D---F--G
  \ /
   X
我知道A包含行,但G不包含行。实际上删除它的提交是X。但是,如果我运行git-burn-reverse A..G,它会告诉我该行的最后一次提交是I。通过执行git-log-reverse-祖先路径I..G,我将看到F是一个合并,所以我需要通过运行git-burn-reverse A..D进行更深入的挖掘,它将返回H。然后我将找到G,最后才是A,这样我就能找到X了

这不是一个不太可能的场景,我遇到了这个问题,当时我们有很多拉请求在类似的时间合并到主分支中,所有分支提交仍然包含删除的代码

是否有一个命令可以立即返回commit X?或者至少有更快的方法找到它吗?

git log-这是添加或删除的行的一部分,将为您提供更改指定字符串出现次数的所有提交,即文件中的添加/删除

您还可以使用-pickaxe regex将该字符串视为正则表达式。

可能与