[英]How to get the commit hash that added a line to a file, which is already deleted by the current commit in github repository
尝试git log -S <string>
:
git log -S "import javax.xml.bind.JAXBException"
引用有关-S
及其表亲-G
的文档( git help log
):
-S<string>
寻找差异来改变文件中指定字符串(即加/删除)的出现次数。 供脚本编写者使用。当您正在寻找确切的代码块(如结构),并且想知道该块自首次出现以来的历史记录时,它很有用:迭代使用该功能将原图像中的有趣块反馈到-S,继续进行直到获得该块的第一个版本。
-G<regex>
查找其补丁文本包含与<regex>
匹配的已添加/已删除行的差异。为了说明
-S<regex> --pickaxe-regex
和-G<regex>
之间的区别,请考虑在同一文件中包含以下差异的提交:+ return !regexec(regexp, two->ptr, 1, ®match, 0); ... - hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);
虽然
git log -G"regexec\\(regexp"
将显示此提交,
git log -S"regexec\\(regexp" --pickaxe-regex
将不会(因为该字符串的出现次数未更改)。有关更多信息,请参见gitdiffcore(7)中的镐头条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.