Git 查找更改的行号

Git 查找更改的行号

我想查找上次在当前分支 (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 及其行号。

相关内容