git .gitignore filter dir or file settings

Git

在提交到版本控制庫的時候,應(yīng)該對這些項目文件,進(jìn)行過濾(使用 GIT 做 SCM 時,過濾文件位于項目根目錄,名稱為 .gitignore)。

    .gitignore
    
    # filter eclipse file
    *.classpath
    *.project
    
    # filter eclipse dir
    /.settings/
    
    # filter idea file
    *.iml
    
    #filter idea dir
    /.idea/

IDE 方言的項目文件

    Eclipse : dir - .settings, files - .classpath .project
    IntelliJ : dir - .idea, file 項目同名的 .iml
  • git 創(chuàng)建 .gitignore 文件 建立項目過濾規(guī)則

    創(chuàng)建 .gitignore 設(shè)置跟蹤和不跟蹤那些文件

    1. 在項目根目錄下建立 .gitignore 文件
    2. .gitignore文件過濾有兩種模式,開放模式保守模式
      • 格式規(guī)范

          所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略。
          可以使用標(biāo)準(zhǔn)的 glob 模式匹配。
          匹配模式最后跟反斜杠(/)說明要忽略的是目錄。
          要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。
          先編寫開放模式,在編寫保守模式,要不然,開放模式的規(guī)則會把保守模式的規(guī)則給覆蓋了。
          
          # 配置語法
          以斜杠“/”開頭表示目錄;
          以星號“*”通配多個字符;
          以問號“?”通配單個字符
          以方括號“[]”包含單個字符的匹配列表;
          以嘆號“!”表示不忽略(跟蹤)匹配到的文件或目錄;
        
      • 開發(fā)模式負(fù)責(zé)設(shè)置過濾那些文件和文件夾

          eg:
          # filter dir setting, 表示過濾這個文件夾
          /mtk/
          /target/
          
          # filter file setting, 指定過濾某種類型的文件
          *.zip
          *.rar
          *.via
          *.tmp
          *.err
          
          # 指定過濾某個文件
          /mtk/do.c
          /mtk/if.h
        
      • 保守模式負(fù)責(zé)設(shè)置那些文件[要被跟蹤]不被過濾

          eg:
          # not filter dir setting, 跟蹤某個文件夾
          !/pluto/mmi
          
          # not filter file setting, 跟蹤某類文件
          !*.c
          !*.h
          
          # 跟蹤某個指定文件
          !/pluto/mmi/features.h
        
      • config .gitignore simple rule

          [開放模式與保守模式結(jié)合配置]
          eg:
          # 一個文件夾下有很多文件夾和文件,而只想跟蹤其中的一個文件
          /pluto/mmi/
          !/pluto/mmi/features.h
        
    • 強(qiáng)調(diào)

      最后需要強(qiáng)調(diào)的一點是,如果你不慎在創(chuàng)建.gitignore文件之前就push了項目,那么即使你在.gitignore文件中寫入新的過濾規(guī)則,這些規(guī)則也不會起作用,Git仍然會對所有文件進(jìn)行版本管理。

      簡單來說,出現(xiàn)這種問題的原因就是Git已經(jīng)開始管理這些文件了,所以你無法再通過過濾規(guī)則過濾它們。

      所以大家一定要養(yǎng)成在項目開始就創(chuàng)建.gitignore文件的習(xí)慣,否則一旦push,處理起來會非常麻煩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容