Git责备在多个文件上匹配字符串的行

时间:2016-05-17 21:18:48

标签: git

这是当天的git挑战。我已经花了一个小时的时间,但有人可能从头顶知道它。

你如何对repo中的所有* _template.html文件进行git责备,并且只打印出具有字符串" foobar"在他们身上?

我正在寻找该字符串的第一次出现,所以如果有另一种方法可以在这些行上获得最后修改日期,那么这也可以。

2 个答案:

答案 0 :(得分:1)

这是我想出来的黑客......

git ls-files -- '**/*_template.html' | xargs -I{} git blame {} | grep "foobar"

答案 1 :(得分:1)

您应该使用git log -p -Sfoobar。这将打印提交差异,它们已从您的存储库中引入foobar或完全删除foobar。它不会打印任何已经foobar的提交。

这对于找出添加或删除给定符号的原因非常有用。

您也可以将此限制为某些文件或目录:git log -Sfoobar *_template.html