搜索 git 历史记录的更好方法

时间:2021-01-20 21:02:14

标签: git

我经常git log -p 寻找一行代码更改,通常是删除。这打开更少,然后我做一个 /search 我正在寻找的东西。这确实有效。然而,一旦我找到它,我有时想查看这个文件的提交日志,通常是为了确定什么时候。由于许多文件提交,这通常涉及大量滚动。有没有什么好办法停止滚动,直接跳转到提交?

2 个答案:

答案 0 :(得分:1)

要查找命中所在的文件只是?^diff;那么查找提交标头的搜索字符串是 ?^commit ,如果您使用的是默认标头格式,则带有该尾随空格,或者 ?^[a-f0-9]{5} 如果您使用的是 --oneline

显然 mercurial 有一个差异抓取工具,可以将命中和元数据各压缩为一行,I wrote an equivalent as a simple lex 是为了好玩。

答案 1 :(得分:1)

如果您正在寻找删除特定行的提交,则有更好的方法。

使用 git log

git log -S <string which was added/removed> path/to/file

使用 git blame

git blame --reverse START..END filename