我在回购中添加了一些代码行并提交了它。然后删除这些行的提交次数。
当添加的行和删除它们的后续提交的哈希时,我有提交哈希。如何找到删除它们的确切提交?
答案 0 :(得分:3)
您可以使用-S
或-G
选项git log
。它们之间的区别在于-S
采用固定的字符串(表示您想要匹配的代码行),而-G
执行相同的操作,但采用正则表达式:
git log --oneline -S 'fixed string'
git log --oneline -G '^foobar$'
-S
和-G
选项将返回首次引入或删除字符串/正则表达式模式的提交。如果要查看提交匹配的差异,您甚至可以添加--patch
或-p
选项。
来自official Linux Kernel git log
documentation:
-S <string>
查找引入或删除
<string>
实例的差异。请注意,这与简单地出现在diff输出中的字符串不同;有关详细信息,请参阅gitdiffcore(7)中的pickaxe条目。-G <regex>
查找添加或删除的行与给定
<regex>
匹配的差异。
答案 1 :(得分:2)
您可能需要查看git-blameall
。它显示了文件中存在的每一行,并包含删除行的提交。它对这种取证很有用。