我想查找上次在当前分支 (master) 的源代码中删除特定 css 属性的时间。我写道:
git log -Smystring --source
它给了我一个哈希值。我启动 gitk 并粘贴了哈希值,它给了我一个巨大的文件列表,所以我怀疑它只是行尾。但是我在 gitk 中搜索了字符串,却找不到该字符串。也许这意味着它已被删除,但 gitk 不应该显示- ...mystring...
吗?
我如何找到我的字符串所在的行/文件?我使用上面的命令看到了最后几个哈希值,但我不知道如何精确定位它。
答案1
就像是
git bisect start
git bisect bad AFTER
git bisect good BEFORE
git bisect run grep -v LINE FILE
其中 BEFORE 和 AFTER 分别是包含和不包含所讨论的 LINE 的提交。这应该会找到 BEFORE 和 AFTER 之间 FILE 包含 LINE 的最后一个提交。
一旦你知道要查看哪个提交,你就可以使用
git grep -n LINE COMMIT:FILE
在 FILE 的相应版本中定位 LINE 及其行号。