我见过类似的问题(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
显示它。
我终于在这里找到了解决方案。解决方案是在文件夹中添加另一个.gitignore
文件Resources
。这可以正常工作。
我可以用一个忽略文件实现同样的效果吗?我发现在不同的目录中有许多忽略文件有点笨拙。
这就是我想要实现的目标:
# 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
类型并跟踪其他文件。