2016-12-21 126 views
4

我在Git中有一个文件夹,其中包含一些文件。文件是我的Git存储库的一部分。运行我的项目时,一些工作目录出现在这个文件夹中。目录可以有多个子目录的任何名称和任何嵌套级别。我想忽略出现在这个文件夹中的所有可能的子目录,但仍然保留在我的文件夹的根目录下的所有文件(不是目录)。如何使用.gitignore忽略文件夹中的所有子文件夹

我试图型态:

/ 
*/ 
/* 
/*/ 

的以上给出期望的结果无。如何实现?

许多答案解释了如何忽略具有特定名称的文件夹,例如 Git ignore sub folders。 但似乎没有解释如何忽略通配符的所有子文件夹。

+0

请参阅[Git忽略子文件夹](http://stackoverflow.com/a/40363384/1635042) –

+0

请尝试此[Git忽略子文件夹](http://stackoverflow.com/a/40363384/1635042 ) –

+0

@ Mete Cantimur,pfnuesel,感谢您的链接。我已经尝试过所有提供的变体,但都没有为我工作。我不认为我的问题是重复的。这些链接上的用户希望忽略具有特定名称的子文件夹,而我想忽略所有可能的带有通配符的子文件夹。 –

回答

3

试试这个:被忽略

!folder/ 
folder/* 

第一行排除顶层,第二行忽略所有子文件夹。

+1

不会'文件夹/ * /'做同样的事情吗? – pfnuesel

+0

@Tim Biegeleisen,谢谢。有用。所以我将其标记为答案,尽管我自己也是这样认识的。但就管理逻辑而言,这并不完美:假设我稍后将此文件夹移到另一个地方。我将不得不根据每个存储库重组来调整父文件夹的.gitignore。有没有什么办法可以从相关文件夹中的.gitignore中执行它? –

+0

@BorisZinchenko如果你开始移动文件/文件夹,那么'.gitignore'不会是你唯一会遇到的问题。你也必须处理被部分破坏的历史以及引发这种变化的任何人的潜在冲突。 –

2

这很简单。在以下文件夹中创建.gitignore

*/* 

I.e.忽略当前文件夹的任何文件夹中的所有文件。

+0

谢谢你的建议。刚试过这个,它不适合我。所有的子文件夹仍然可见。 –

+0

@BorisZinchenko我试过自己 - 工作正常。我有git v2.10.2。你确定你做对了吗? – kan

+0

我检查了我们的Git版本。我们运行Git-1.8.0。由于组织方面的原因,我们无法立即为所有员工更新。我很感谢你的简洁的回答,并且当我们更新到更新的Git时,一定会使用它。我不能将它标记为答案,因为我目前没有合适的Git。抱歉。 –

相关问题