我有文件夹application/我添加到.gitignore。在 - 的里面application/文件夹是文件夹application/language/gr。如何包含此文件夹?

我尝试过

application/
!application/language/gr/

答案

如果您排除在外application/,那么它下面的所有内容都将始终被排除(即使以后的一些负面排除模式(" Unignore")可能与下面的某些内容相匹配application/)。

要做自己想做的事,您必须" Unignore"要" Unignore"的任何内容的每个父目录。通常,您最终会成对为这种情况编写规则:忽略目录中的所有内容,但不是某些子目录。

# you can skip this first one if it is not already excluded by prior patterns
!application/

application/*
!application/language/

application/language/*
!application/language/gr/

Note
尾随/*很重要:

  • 图案dir/排除名为的目录dir(隐式)所有内容。
    dir/,git永远不会在下面看任何东西dir,因此永远不会将任何"非排除"模式应用于下面的任何内容dir
  • 图案dir/*什么也没说dir本身;它只是不包括一切dir。和dir/*,git将处理的直接内容dir,给其他模式有机会"取消隔离"一点点内容(!dir/sub/)。

来自: stackoverflow.com