如何从`git grep`中省略很长的行?

时间:2016-03-27 20:55:13

标签: git grep vim-fugitive

我正在搜索我的存储库(使用vim-fugitive' s:Ggrep),我有不同的.js文件 - 缩小的文件和常规文件。

我想省略git grep缩小的文件(换句话说 - 与查询匹配的很长的行)。我查看git help grep并用Google搜索但无法找到任何内容。欢迎所有的想法。

4 个答案:

答案 0 :(得分:6)

对我来说,最好的方法是创建一个名为.gitattributes的文件和这个内容:

*.min.js binary *.min.css binary

答案 1 :(得分:1)

grep是一个命令行实用程序,用于搜索与正则表达式匹配的行的纯文本数据集。 您可以使用正则表达式来限制搜索。

例如, 您可以使用花括号来控制出现次数。例如,这意味着0到10:

/^[a-z]{0,10}$/

选项包括:

{3} Exactly 3 occurrences;
{6,} At least 6 occurrences;
{2,5} 2 to 5 occurrences.

答案 2 :(得分:0)

Benni的解决方案相当不错。在此基础上,如果要使用稍微通用的解决方案,请使用git grep在存储库中查找行长超过1500个字符的文本文件。然后在binary中标记这些文件.git/info/attributes。这是一个单行代码:

git grep -lI '.\{1500\}' | sed 's/$/ binary/' >> .git/info/attributes

当然,如果您要对此版本进行版本化(并且您的团队同意),也可以在.gitattributes中记录下来。

答案 3 :(得分:0)

这实际上并没有按照要求省略长行,但是为了避免当一个很长的行匹配(例如缩小的javascript)时你的终端填满你可以配置git通过{{ 1}} 和 less 选项(-S 的缩写):

--chop-long-lines

或等效地将其添加到相关的 # For current repo only git config --local core.pager "less -S" # For all git repos git config --global core.pager "less -S" .gitconfig

.git/config