git – 正确地忽略特定文件夹下的所有文件,除了特定文件类型

我看到类似的问题(123),但我没有得到一个适当的解决方案。

我需要忽略特定文件夹下的所有文件,除了特定的文件类型。该文件夹是根路径的子目录。让我命名文件夹资源。由于我不想复杂的事情,让我忽略所有文件夹下的名为Resources的文件,无论它在哪里。

这是最常见的解决方案(在所有重复的问题)

# Ignore everything
*

# Don't ignore directories, so we can recurse into them
!*/

# Don't ignore .gitignore
!.gitignore

# Now exclude our type
!*.foo

这个解决方案的问题是它停止跟踪新添加的文件(因为*忽略所有文件)。我不想保留排除每个文件类型。我想要正常的行为,如果任何新文件添加,git status显示它。

我终于有一个解决方案here.解决方案是在Resources文件夹中添加另一个.gitignore文件。这正确工作。

我可以实现相同的一个忽略文件?我发现有许多忽略文件在不同的目录有点笨重。

这是我想实现:

# Ignore everything under Resources folder, not elsewhere
Resources

# Don't ignore directories, so we can recurse into them
!*Resources/

# Now exclude our type
!*.foo

但这给出了相反的输出。它忽略* .foo类型并跟踪其他文件。

最佳答案
@SimonBuchan is correct.

从git 1.8.2,资源/ **!资源/ ** / *。foo工程。

转载注明原文:git – 正确地忽略特定文件夹下的所有文件,除了特定文件类型 - 代码日志