在gitignore中包含特定的文件扩展名

在gitignore中包含特定的文件扩展名,git,gitignore,Git,Gitignore,我希望包括资产目录和所有子目录中的所有*.meta文件,同时排除资产中的所有其他文件 我试过了 /Assets/* !/Assets/**/*.meta !*.meta 但这只包括/资产中的*.meta 感谢您的帮助首先,如果忽略规则不起作用,您可以检查以下内容: 它将显示哪个忽略规则忽略您认为不应忽略的文件 那么,当涉及到忽略时,要记住的主要规则是: (*) (*:除非git 2中满足某些条件,请参见下文) 这就是为什么您的规则只在/Assets中包含*.meta(而不是子目录) 您需要包含

我希望包括资产目录和所有子目录中的所有*.meta文件,同时排除资产中的所有其他文件

我试过了

/Assets/*
!/Assets/**/*.meta
!*.meta
但这只包括/资产中的*.meta


感谢您的帮助首先,如果忽略规则不起作用,您可以检查以下内容:

它将显示哪个忽略规则忽略您认为不应忽略的文件

那么,当涉及到忽略时,要记住的主要规则是:

*

*
:除非git 2中满足某些条件,请参见下文)

这就是为什么您的规则只在
/Assets
中包含
*.meta
(而不是子目录)

您需要包含文件(as)的所有父文件夹才能包含文件

/Assets/**/**
! /Assets/**/
!/Assets/**/*.meta
我用git 2.4.1测试了它,它可以工作(甚至在Windows上)。
它只包括
Assets
中的
*.meta
文件和所有子目录,但不包括其他所有内容


请注意,使用git 2.9.x/2.10(2016年年中?),如果文件的父目录被排除,则可能会重新包含该文件

正在尝试添加此功能:

  • 对于git v2.7.0,在git v2.8.0-rc0中恢复
  • git v2.8.0-rc0,。。。在git 2.8.0-rc4中恢复了(!)
然而,由于重新纳入的条件之一是:

re-include规则中的目录部分必须是文本(即没有通配符)


这在这里不起作用。

首先,如果忽略规则不起作用,您可以检查:

它将显示哪个忽略规则忽略您认为不应忽略的文件

那么,当涉及到忽略时,要记住的主要规则是:

*

*
:除非git 2中满足某些条件,请参见下文)

这就是为什么您的规则只在
/Assets
中包含
*.meta
(而不是子目录)

您需要包含文件(as)的所有父文件夹才能包含文件

/Assets/**/**
! /Assets/**/
!/Assets/**/*.meta
我用git 2.4.1测试了它,它可以工作(甚至在Windows上)。
它只包括
Assets
中的
*.meta
文件和所有子目录,但不包括其他所有内容


请注意,使用git 2.9.x/2.10(2016年年中?),如果文件的父目录被排除,则可能会重新包含该文件

正在尝试添加此功能:

  • 对于git v2.7.0,在git v2.8.0-rc0中恢复
  • git v2.8.0-rc0,。。。在git 2.8.0-rc4中恢复了(!)
然而,由于重新纳入的条件之一是:

re-include规则中的目录部分必须是文本(即没有通配符)


这在这里是行不通的。

您想从git中排除所有的*.meta文件吗?您想从git中排除所有的*.meta文件吗?谢谢VonC-问题是我不知道资产中所有子文件夹的名称,它们随时都在变化。:-(我只希望在资产和所有子目录中包括*.meta文件,但不包括所有内容。)else@OptimisticMonkey你能在
!/Assets/***/
之前尝试
!/Assets/***/
吗?在包含元文件之前,可能会包含所有子文件夹。
/Assets/*!/Assets/***/***.meta!/Assets/***/!.meta
会产生所有结果包含在中的文件Assets@OptimisticMonkey否:
!/Assets/**/
正如我所说,您需要包含子文件夹才能包含文件。我的回答中提到了这一点:如果排除了某个文件的父目录,则无法重新包含该文件。如何排除除*.meta之外的所有其他文件?抱歉-只是似乎无法理解-总是在第一个目录中包含所有文件或仅包含*.meta感谢VonC-问题是我不知道资产中所有子文件夹的名称,并且它们一直在更改:-(我只希望在资产和所有子目录中包括*.meta文件,但不包括所有内容。)else@OptimisticMonkey你能在
!/Assets/***/
之前尝试
!/Assets/***/
吗?在包含元文件之前,可能会包含所有子文件夹。
/Assets/*!/Assets/***/***.meta!/Assets/***/!.meta
会产生所有结果包含在中的文件Assets@OptimisticMonkey否:
!/Assets/**/
正如我所说,您需要包含子文件夹才能包含文件。我的回答中提到了这一点:如果排除了某个文件的父目录,则无法重新包含该文件。如何排除除*.meta之外的所有其他文件?抱歉-似乎无法理解-始终在第一个目录中包含所有文件或仅包含*.meta