Git-如何从单个项目的全局.gitignore中删除排除模式

时间:2019-03-27 15:57:52

标签: git gitignore

让我们说我在全局.gitignore中有“ .foo”,这对我当前的所有项目都很有效(并且可以说其中有很多,所以我想将其保留在我的全局中忽略文件)。

现在,我正在开始一个新项目,该项目在任何地方都使用.foo文件。

如何针对此特定项目“撤消”在全局忽略中定义的.foo文件的排除?

这意味着在处理新项目时,我只能git add .并让它拾取所有.foo文件,但是如果我在任何其他项目中运行git add .,那么{{ 1}}文件将被忽略。

3 个答案:

答案 0 :(得分:5)

您可以通过添加前导!来简单地忽略模式,如下所示:

# Don't ignore .foo file
!.foo

如果将其放在本地.gitignore中,它将覆盖在全局.gitignore中所做的设置。

您可以在官方文档heregitignore中找到有关受支持模式的文档

答案 1 :(得分:2)

每个存储库还具有本地.gitignore,您可以对其进行修改。

这里接受的答案告诉您要看的地方

How do I configure git to ignore some files locally?

要取消忽略,只需将其添加到本地.gitignore文件中,并加一个前导!

答案 2 :(得分:1)

您要寻找的是否定。参见https://git-scm.com/docs/gitignore#_pattern_format

  

可选的前缀“!”否定了模式;先前模式排除的所有匹配文件都将再次包含在内。

对于您的情况,只需将其添加到项目的.gitignore中:

!.foo

查看此问题以获得更详尽的解释: Make .gitignore ignore everything except a few files


请注意文档中的这一重要警告:

  

如果排除了该文件的父目录,则无法重新添加该文件。

因此,如果您试图仅在排除目录中包括特定文件,则必须进行一些更改以包括该目录,但要排除其中的任何文件,但您想要的文件除外:

!excludedir
excludedir/*
!excludedir/*.foo