在使用 git grep 时,默认情况下是否可以忽略特定目录?

8 浏览
0 Comments

在使用 git grep 时,默认情况下是否可以忽略特定目录?

在Django中,south提供了类似以下结构的功能:\n

/app
  /migrations
    .. 迁移文件。

\n由于迁移文件代表的是历史结构而不是当前的内容,我希望在每次运行git grep时默认排除它们。有没有办法可以实现这个功能?

0
0 Comments

问题的原因是在使用git grep命令时,默认情况下无法忽略特定的目录。解决方法是通过将要忽略的文件/文件夹添加到.gitignore文件中,然后执行以下命令:git grep --exclude-standard。然而,这种方法无法解决包含在存储库中的数据库迁移文件的情况,因为--exclude-standard只适用于未跟踪的文件。

0
0 Comments

问题的出现原因是用户想要在使用git grep命令时默认忽略某些目录。目前,没有办法改变Git命令的默认行为,因为它们直接在内部使用。此外,git grep命令不支持排除模式。用户可以尝试使用普通的grep命令,并确保排除.git目录。另外,用户还可以创建一个带有默认文件列表的别名,以包含不包含迁移文件夹的文件。

解决方法:

1. 使用别名git gr来替代git grep,并启用颜色和大小写不敏感。用户还可以添加排除条件。这样做的好处是输入更快捷。

2. 如果不关心git grep的特定功能,可以直接使用普通的grep命令,并确保排除.git目录。

3. 创建一个带有默认文件列表的别名,以包含不包含迁移文件夹的文件。具体方法可以参考上述链接中的答案。

0
0 Comments

使用git grep时,有时候希望默认忽略某些目录。解决方法是创建一个.gitattributes文件,并在其中指定要忽略的目录或文件。可以通过将目标文件或目录标记为二进制文件来实现忽略。以下是一个示例:

# 创建.gitattributes文件
touch .gitattributes

然后在.gitattributes文件中添加以下内容:

# 忽略app/migrations目录下的所有文件
app/migrations/* binary

这样,git grep命令将默认忽略app/migrations目录下的所有文件。如果还希望在diff操作中忽略这些文件,可以修改.gitattributes文件的内容:

# 忽略app/migrations目录下的所有文件,并在diff操作中也忽略
app/migrations/* binary -diff

需要注意的是,这种方法只是一个不太优雅的解决方案,并不是git官方推荐的做法。关于在git grep中添加属性的讨论可以在这里找到:discussion。希望将来会有一个更好的解决方案。

0