如何使用 git log pickaxe 显示更改本身?

Sal*_*din 5 git git-log

我想在 git log 中搜索特定字符串以找到它被修改/删除/添加的位置。

我知道我可以使用pickaxe(ie, git log -S"Text")

当我运行此命令时,只显示发生更改的提交的名称。我也试过git log -G"Text"但没有区别。

当我尝试时git log -p -S"Text",它向我展示了两个文件版本之间的完整比较。

有没有办法找出文本被更改/添加/删除的确切位置(行)?

我查看了相关帖子12但没有回答我的问题。我正在使用 Windows 操作系统。

bk2*_*204 5

Git 没有提供内置的方法来执行此操作,但您可以使用寻呼机的功能来查找文本。例如,如果您使用的是 less,则可以运行git log -p -G"Text". 然后,您可以通过键入在此命令的输出中搜索“文本” /Text。到目前为止,这是找到所需内容的最简单方法。

有一种替代的,相当丑陋的方法可以解决这个问题,这可能会满足您的需求。如果您使用--word-diff-regex=Text,Git 将生成另一种 word-diff 格式,该格式将从“文本”的一个实例突出显示到下一个,或者如果只有一个实例,则仅突出显示单个实例。同样,使用你的寻呼机会更好,更容易阅读。