這樣寫的話依然還是忽略的,但是如果我是寫!/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/的文件和目錄都寫一遍。範例:老師宣布這次成績的全格人員
當然也可以這樣