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

问题描述 投票:2回答:3

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

现在,我正在开始一个到处使用.foo文件的新项目。

如何“撤消”排除我的全局忽略中定义的.foo文件仅用于此特定项目?

这意味着我可以只使用git add .处理新项目并让它获取所有.foo文件,但如果我在任何其他项目中运行git add .,那么.foo文件将被忽略。

git gitignore
3个回答
5
投票

你可以通过添加一个领先的!来简单地取消模式,如下所示:

# Don't ignore .foo file
!.foo

如果你把它放在你当地的.gitignore中,它将覆盖全局.gitignore中完成的设置。

您可以在官方文档gitignore中找到here中支持的模式的文档


2
投票

每个存储库还有一个可以修改的本地.gitignore。

这里接受的答案告诉你在哪里看:

How do I configure git to ignore some files locally?

要unignore,只需将其添加到带有前导的本地.gitignore文件中!


1
投票

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

可选前缀“!”否定了这种模式;之前模式排除的任何匹配文件将再次包含在内。

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

!.foo

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


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

如果排除该文件的父目录,则无法重新包含文件。

因此,如果您尝试仅在排除目录中包含特定文件,则必须更改包含目录的内容,但排除其中的所有文件,除了您想要的文件:

!excludedir
excludedir/*
!excludedir/*.foo
© www.soinside.com 2019 - 2024. All rights reserved.