【问题标题】:Is it possible to ignore certain directories by default when using git grep? [duplicate]使用 git grep 时是否可以默认忽略某些目录? [复制]
【发布时间】:2012-09-24 08:10:29
【问题描述】:

在 Django 中使用 south 我们有类似的东西:

/app
  /migrations
    .. migration files.

由于迁移文件代表的是历史结构,而不是当前的结构,我不希望每次都搜索它们。运行git grep时,有什么方法可以默认排除它们吗?

【问题讨论】:

  • @dusan 可能不是完全相同的副本,但这里的答案可能有用。
  • 我不同意重复,因为这会要求默认。我没有看到微不足道的减少。

标签: git grep


【解决方案1】:

我认为没有单独使用git grep 命令的解决方案。

我能想到的解决方法是将要忽略的文件/文件夹添加到 .gitignore 文件中,然后执行如下命令:

git grep --exclude-standard

【讨论】:

  • 我做不到,我很遗憾需要在我的仓库中进行数据库迁移。
  • 对于任何想知道的人:虽然您可以将跟踪的文件添加到 .gitignore,但 --exclude-standard 仅适用于未跟踪的文件。
【解决方案2】:

我有一个别名 git gr 代表 git grep,它可以启用颜色和不区分大小写。您可以这样做并添加排除项。而且打字速度更快!

否则,大部分情况下无法更改 Git 命令的默认行为,因为它们直接在内部使用。

【讨论】:

  • 不确定您所说的“添加排除”是什么意思,git grep 不支持排除模式。还是您通过! 别名将git gr 别名为常规grep
  • 嗯。我从来没有注意到这一点。如果您不关心 git grep 的 blob 特定功能,我想您可以使用普通的 grep,并确保排除 .git
  • 您可以创建一个别名,其中包含默认的文件列表以 include 不包含您的迁移文件夹,如讨论 in this answer
【解决方案3】:

这是一个糟糕的 hack,但它可能对你有用:使用以下内容创建 app/migrations/.gitattributes

* binary

将所有迁移标记为二进制文件,然后使用git grep -I 跳过二进制文件。

如果您还想忽略差异中的迁移,可以通过将.gitattributes 的内容更改为

* binary -diff

discussion关于添加grep尊重的属性,所以有一天可能会有一个合适的解决方案。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2014-08-12
    • 2010-12-19
    • 2010-12-08
    • 2012-12-22
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多