让我们说我在全局.gitignore
中有“ .foo”,这对我当前的所有项目都很有效(并且可以说其中有很多,所以我想将其保留在我的全局中忽略文件)。
现在,我正在开始一个新项目,该项目在任何地方都使用.foo
文件。
如何针对此特定项目“撤消”在全局忽略中定义的.foo
文件的排除?
这意味着在处理新项目时,我只能git add .
并让它拾取所有.foo
文件,但是如果我在任何其他项目中运行git add .
,那么{{ 1}}文件将被忽略。
答案 0 :(得分:5)
您可以通过添加前导!
来简单地忽略模式,如下所示:
# Don't ignore .foo file
!.foo
如果将其放在本地.gitignore
中,它将覆盖在全局.gitignore
中所做的设置。
您可以在官方文档here的gitignore
中找到有关受支持模式的文档
答案 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