试试 git log 的“pickaxe”选项:
git log -S<your-method-name>
Run Code Online (Sandbox Code Playgroud)
这将为您提供添加或删除字符串的所有提交。
注意 -S 后没有空格。
您可以搜索方法的名称,然后找到输入或删除该字符串的所有提交:
git log -c -S'methodName' /path/to/file.java
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是找到该方法存在的最后一个提交:
$ git blame --reverse START_COMMIT.. file.ext
Run Code Online (Sandbox Code Playgroud)
START_COMMIT是一个您肯定知道该方法仍然存在的提交。您将获得一个git blame输出,在其中可以看到该方法存在的最后一次提交,例如:
f590002e (user 2014-01-13 17:27:25 +0000 26) public void save() {
f590002e (user 2014-01-13 17:27:25 +0000 27) JPA.em().persist(this);
f590002e (user 2014-01-13 17:27:25 +0000 28) }
Run Code Online (Sandbox Code Playgroud)