git: 所有以前版本中的 grep 文件

Ada*_*tan 6 git version-control grep pelican

考虑包含以下行的 Python 配置文件:

THEME = 'gum'
Run Code Online (Sandbox Code Playgroud)

THEME键只出现一次,所以当我想知道什么THEME是,我用grep文件:

grep THEME pelicanconf.py
Run Code Online (Sandbox Code Playgroud)

该文件保存在 git 中,我想THEME在所有以前的 git 提交中使用grep for ,以便知道这一行何时更改。

有没有一种优雅的方式来 grep 一个 git 文件的整个历史?

Joh*_*est 4

git log -S'THEME' -- pelicanconf.py | xargs -n 1 git show显示每个更改的提交内容THEME

然而,它打印出完整的提交,而不仅仅是更改。

var="THEME"; git log -S"$var" -p -- pelicanconf.py | egrep "$var|commit|Date:"

THEME会向您显示提交哈希值和日期的所有变体。

感谢@knittl 的-p选项。

另外,找到了一个解决方案gitk参见此处