白名单和Git中的子目录

我只为文本文件创build了一个白名单。

* !*.txt 

现在,我有一个未追踪的文本文件在一个子目录 – sub/dir/file.txt ,这是不显示(它被忽略)。 但是,显示根目录中的文本文件。

为什么是这样的,我该如何解决?

如果以这种方式尝试,则会失败,因为最终会将结构中的目录列入黑名单。

为了解决这个问题,你想把所有不是目录的东西都列入黑名单而不是你想提交的文件types之一, 而不是黑名单目录

将执行此操作的.gitignore文件:

 # First, ignore everything * # Now, whitelist anything that's a directory !*/ # And all the file types you're interested in. !*.one !*.two !*.etc 

*.one*.two*.three文件存在的情况下,使用位于存储库根目录中的.gitignore.txt文件进行白名单testing。 您不必将.gitignore文件添加到结构中的所有目录。

我用来找出答案的信息来自,除其他外, 这 (stackoverflow.com)。