我正在搜索我的存储库(使用 vim-fugitive 的 :Ggrep),我有不同的 .js 文件 - 缩小的和常规的。
我想从git grep
缩小文件中省略(换句话说 - 与查询匹配的很长的行)。我查看git help grep
并用谷歌搜索但找不到任何东西。欢迎所有想法。
我正在搜索我的存储库(使用 vim-fugitive 的 :Ggrep),我有不同的 .js 文件 - 缩小的和常规的。
我想从git grep
缩小文件中省略(换句话说 - 与查询匹配的很长的行)。我查看git help grep
并用谷歌搜索但找不到任何东西。欢迎所有想法。
对我来说,最好的方法是创建一个名为 .gitattributes 的文件和以下内容:
*.min.js binary
*.min.css binary
这实际上并没有按照要求省略长行,但是为了避免在很长的行匹配时终端填满(例如缩小的 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
grep 是一个命令行实用程序,用于在纯文本数据集中搜索匹配正则表达式的行。您可以使用正则表达式来限制搜索。
例如,您可以使用花括号来控制出现次数。例如,这意味着 0 到 10:
/^[a-z]{0,10}$/
选项包括:
{3} Exactly 3 occurrences;
{6,} At least 6 occurrences;
{2,5} 2 to 5 occurrences.
Benni 的解决方案相当不错。在此基础上,如果您想要一个更通用的解决方案,请使用git grep
在 repo 中查找行长超过 1500 个字符的文本文件。然后将这些文件标记binary
在.git/info/attributes
. 这是一个单行代码:
git grep -lI '.\{1500\}' | sed 's/$/ binary/' >> .git/info/attributes
.gitattributes
当然,如果您想对此进行版本化(并且您的团队同意),您也可以将其记录在 中。