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