子目录在.gitignore白名单中被忽略

时间:2015-09-30 14:02:48

标签: git

我正在为我的Linux主目录创建一个git存储库。除了我白名单的文件/目录之外,我想忽略大多数事情。我有这个:

# Ignore everything
*
# But not these files...
!.gitignore
!*/scripts/*
# the above line doesn't work, so this is a test:
!./scripts/*

但它忽略了我添加到scripts/子目录的文件。我一直在添加-f的内容,这是次优的。

这个问题的答案Git Won't Un-Ignore a Directory对我不起作用。

Git 2.1.4版。

1 个答案:

答案 0 :(得分:6)

来自the docs

  

如果排除该文件的父目录,则无法重新包含文件

您需要明确取消内容目录,否则忽略内容的忽略规则无法匹配任何内容。首先,unignore scripts然后你可以取消scripts/*

这是工作的.gitignore:

*
!.gitignore
!scripts
!scripts/*

那就是说,因为你是一个单独的*,你可以只使用一条规则来逃避路径scripts。第二个scripts/*是多余的。