我需要知道谁以及何时使用 git 删除了源文件的某些部分。不幸的是,似乎 git blame 不会直接告诉我,因为在当前版本的文件中完全没有上述部分。有什么建议么 ?
2 回答
4
您可以在具有特定字符串的行中找到正在更改某些内容的提交。这样,如果您知道其内容是什么,您就可以看到哪个提交删除了某些行
git log -S <string> path/to/file
为了找到这些行的确切编写方式,您可以在一些非常古老的提交中查看您的文件:
git show old-commit-hash^:src/path/to/file
于 2020-08-24T10:14:46.793 回答
1
你有几个选择:
- 使用
-G
选项git log
查找添加或删除与已删除代码匹配的行的提交:
其中指定的字符串也可以是正则表达式git log -G"code that was deleted"
- 使用
-L
带有行范围的选项来查找修改这些行的提交:
将列出在行之间git log -L10,20:path/to/file
10
和20
中修改代码的提交path/to/file
- 使用
-L
带有已删除函数名称的选项:
将列出修改git log -Lfoo:path/to/file
foo
函数的提交path/to/file
。
一旦您知道删除该代码的提交,您就可以轻松确定作者。
于 2020-08-24T10:54:11.190 回答