gitignore文件解析,記住幾點就夠了,很簡單。

整體目錄結構

    foo
        bar
            lst
                aa.c
                bb.c
                cc.c
            h.c
            i.c
            11.txt
        d.c
        e.c
    a.c
    b.c
    c.c

幾點說明

所有的檢查都相對於.gitignore文件位置的路徑名的匹配,無論開頭加不加/
配置語法連續的星號**/開頭可以匹配所有的目錄(也就是相對路徑)
    **/lst   匹配lst目錄下的所有內容
如果以/結尾, 則匹配目錄或者路徑,也就指定目錄(不區分絕對相對)
    lst/     跟上個例子是等價的
如果包含/
*通配多個任意字符/除外   { 所以/*.c並不能匹配root/foo/sha.c> }
?通配單個任意字符/除外
如果不包含/,則匹配文件
*通配多個任意字符   { 所以*.c匹配所有的c文件}
?通配單個任意字符

通用語法

以#開頭表示註釋
以方括號[0-9a-z]匹配所選範圍中的一個字符(不區分大小寫)
以!表示不忽略匹配到的文件或目錄

此外,git 對於.gitignore配置文件是按行從上到下進行規則匹配的,意味着如果前面的規則匹配的範圍更大,則後面的規則將不會生效;!語法除外。

示例

規則:!.gitignore
說明:不忽略.gitignore文件


規則:*.c
說明:忽略所有的.c文件


規則:bar/
說明:忽略所有bar目錄下的所有內容


規則:**/bar/*.c
說明:忽略bar目錄下的所有的點c文件,不包括子目錄


規則:bar/*.c
說明:匹配根目錄下的bar目錄裏的所有c文件, 注意這裏必須與例子3進行區分,不以/結尾

建議

基本上記住以上幾點就夠用了,不是很多。記不住的話 ,配置忽略配置的時候,翻開這篇文章看看,就可以找到解決方案了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章