【发布时间】:2013-07-22 16:07:45
【问题描述】:
我见过类似的问题(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 会显示它。
我终于找到了解决方案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 类型并跟踪其他文件。
【问题讨论】:
标签: git version-control directory gitignore subdirectory