如何使用git log并仅输出匹配的行?

时间:2016-12-02 16:27:38

标签: git

我目前使用git log -G "XYZ" -p来搜索某些内容的过去更改,比如类,但经常遇到差异非常大的问题,这使我很难找到我的搜索字词所在的实际行改变。有没有办法将输出限制为仅限于该行或仅限于它周围的几行?

解决方案:git grep xyz $(git rev-list --all --max-count=5)

- max-count是可选的(我需要它来避免错误Argument list too long

1 个答案:

答案 0 :(得分:1)

如果窗口使用findstr ..

,你可以像git log -G "XYZ" -p | grep pattern那样做grep

而不是使用--max-count,如果你知道appr,那么--since和--until会更好。您要搜索的时间段

git grep xyz $(git rev-list --since="2016-11-20" --until="2016-11-21" --all)

但最好的方法是分两部分使用。 1)使用以下命令

识别提交,文件名和计数

1)git grep -c xyz $(git rev-list --all)

将此提交号传递给下面的命令以获得确切的问题

2)git grep xyz 718dcc690d8e99fd399f21fd71c86b1b8812a53d