这样写的话依然还是忽略的,但是如果我是写!/upload/2011就不被忽略了。
所以我有个疑问,gitignore就只是支二层目录的忽略规则吗?
黄舟2017-05-02 09:30:43
【参考链接】:忽略文件 / Ignoring Files
文件 .gitignore 的格式规范如下:
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(
*
)匹配零个或多个任意字符;[abc]
匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个
b,要么匹配一个c);问号(?
)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]
表示匹配所有 0 到 9 的数字)。 使用两个星号(*
) 表示匹配任意中间目录,比如a/**/z
可以匹配a/z
,a/b/z
或a/b/c/z
等。
某草草2017-05-02 09:30:43
任意层级
.gitignore
一般用我们使用 git add .
这种命令中没有明确指定要加入的文件时忽略 .gitignore
中声明的文件,但以!
开头的规则不会被排除。
/uploads/*
!/uploads/2011/11/
这样的组合而成的,这样可以简化 .gitignore
的复杂度,如果没有 !/path
语法的,你就不得不把除了 /2011/11/的文件和目录都写一遍。
例子:老师宣布这次成绩的全格人员
1号 合 格
2号 合 格
3号 合 格
4号 合 格
小明 不合格
6号 合 格
7号 合 格
8号 合 格
9号 合 格
。。。
当然也可以这样
全部合格 -------> /uploads,
除了小明 -------> !/uploads/2012/11,全部已经包括小明,但现在把他排除