4

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

我想从git grep缩小文件中省略(换句话说 - 与查询匹配的很长的行)。我查看git help grep并用谷歌搜索但找不到任何东西。欢迎所有想法。

4

4 回答 4

6

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

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

于 2016-08-11T07:24:35.553 回答
2

这实际上并没有按照要求省略长行,但是为了避免在很长的行匹配时终端填满(例如缩小的 javascript),您可以配置 git 以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

[core]
    pager = less -S
于 2021-07-06T10:58:24.473 回答
1

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

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

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

选项包括:

{3} Exactly 3 occurrences;
{6,} At least 6 occurrences;
{2,5} 2 to 5 occurrences.
于 2016-03-27T21:52:09.933 回答
0

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

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

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

于 2020-11-24T15:48:50.430 回答