我正在为我的Linux主目录创建一个git存储库.除了我白名单的文件/目录之外,我想忽略大多数事情.我有这个:
# Ignore everything
*
# But not these files...
!.gitignore
!*/scripts/*
# the above line doesn't work, so this is a test:
!./scripts/*
Run Code Online (Sandbox Code Playgroud)
但它忽略了我添加到scripts/子目录中的文件.我一直在添加东西-f,这是次优的.
这个问题的答案,Git不会取消忽略目录,对我不起作用.
Git版本2.1.4.
来自文档:
如果排除该文件的父目录,则无法重新包含文件
你需要明确取消忽略这两个目录和它的内容,否则否定的忽略规则的内容无法比拟的东西.首先,unignore scripts,然后你可以unignore scripts/*.
这是工作的.gitignore:
*
!.gitignore
!scripts
!scripts/*
Run Code Online (Sandbox Code Playgroud)
也就是说,因为你是独一无二的*,所以你可以通过一条规则逃脱,这会使路径失去信心scripts.第二个scripts/*是多余的.