我正在为我的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版。
答案 0 :(得分:6)
来自the docs:
如果排除该文件的父目录,则无法重新包含文件
您需要明确取消内容和目录,否则忽略内容的忽略规则无法匹配任何内容。首先,unignore scripts
和然后你可以取消scripts/*
。
这是工作的.gitignore:
*
!.gitignore
!scripts
!scripts/*
那就是说,因为你是一个单独的*
,你可以只使用一条规则来逃避路径scripts
。第二个scripts/*
是多余的。