自己开车疯时发现了您的问题,到目前为止,还没有答案是足够的。我找到了一种找到特定提交的方法,但是仅在这些提交之间进行区分时才会显示。我无法解释为什么git这样工作,但是我将详细说明我的发现:
问题解释
使用“ -S”或“ -G”,我们只能找到它的添加位置,而不能删除。详细说明:
$ git log --format="%H" -S"127.0.124.1"
857aa361293abbb351d6d6becaa55ec011aebc93
$ git show 857aa361293abbb351d6d6becaa55ec011aebc93 | grep "127.0.124.1"
+ return "127.0.124.1", nil
一步步
我从dev.to上的miku86那里得到了这个主意。首先,我们尝试找到存在我们字符串的最后一个提交:
$ git --no-pager grep "127.0.124.1" $(git rev-list --all)
ba0b2d348f4e33857c96acf5a6231cf9d89ddb1b:some/file.go: return "127.0.124.1"
0d19a98d6434da0b4b5cc2bac190b9b1de36d992:some/file.go: return "127.0.124.1"
84274c5712bacbbee1dca5567cef77a2b6f356d2:some/file.go: return "127.0.124.1"
42e692643ff8a5dce7a89e985062b3d38c60fcc0:some/file.go: return "127.0.124.1"
结果ba0b2d348f4e33857c96acf5a6231cf9d89ddb1b是我们搜索到的提交。接下来,我们尝试查找在这之后直到HEAD的提交:
$ git rev-list ba0b2d348f4e33857c96acf5a6231cf9d89ddb1b..
[...]
c82d040f7be2f8955075655843400a36ceb75303
aa0568b543db57564770d73e736aaf50fd749fb4
dde61dae0cf648e7f4dd8a5c194bcf9be1745793
这是dde61dae0cf648e7f4dd8a5c194bcf9be1745793,因为这是我们要查找的列表中的最后一个。
因此,这意味着dde61dae0cf648e7f4dd8a5c194bcf9be1745793应包括该清除?
$ git show dde61dae0cf648e7f4dd8a5c194bcf9be1745793 | grep "127.0.124.1"
没有?!?那么从那到我们第一次发现的提交有什么区别呢?
$ git diff ba0b2d348f4e33857c96acf5a6231cf9d89ddb1b..dde61dae0cf648e7f4dd8a5c194bcf9be1745793 | grep "127.0.124.1"
- return "127.0.124.1"
在这里我们找到了它。太奇怪了。但是由于我们在提交之间使用了差异,我是否犯了一个错误,并且之间还有其他提交?
$ git log --pretty=oneline ba0b2d348f4e33857c96acf5a6231cf9d89ddb1b..dde61dae0cf648e7f4dd8a5c194bcf9be1745793
dde61dae0cf648e7f4dd8a5c194bcf9be1745793 network interface
不,我们似乎没有犯错。太奇怪了。但是,是的,那是我找到弦消失的特定变化点的距离。
另外
我可以确认使用git bisect的是dde61dae0cf648e7f4dd8a5c194bcf9be1745793就是犯我一直在寻找。
$ git bisect bad
dde61dae0cf648e7f4dd8a5c194bcf9be1745793 is the first bad commit
commit dde61dae0cf648e7f4dd8a5c194bcf9be1745793
Author: ...
Date: Fri Oct 18 11:04:26 2019 +0200
network interface
:100644 100644 242e81c363c2c7069efb018821821553b98f2c97 416c27f5351a9d92a6914b34846c6de51d83dd0d M go.mod
:040000 040000 715c3ab5b3f4579d8054618f1e11fc05fb425324 e6731408a1ac1ff0428128ccbb1fbfaad4c789ab M network
[...]
log,它应该在show...中可见,对吗?也许我误解了这个问题。