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