我看到了类似的问题(1, 2 和 3),但是它们并没有给出一个恰当的解决方案。
我需要忽略特定文件夹下的所有文件,除了指定的一种文件类型。这个文件夹是根目录的子目录。让我们称这个文件夹为Resources
。由于我不想让事情变得复杂,在所有名字为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
会显示它。我最终在这里找到了一个解决方案。解决方案是在
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
类型并跟踪其他文件。
DirectoryName1/** DirectoryName1/**/*
。首先删除目录,但你需要第二个来删除所有文件类型。 - Scala Enthusiast