有些時候,你必須把某些文件放到Git工做目錄中,但又不能提交它們,好比保存了數據庫密碼的配置文件啦,等等,每次git status都會顯示「Untracked files …」,有強迫症的童鞋內心確定不爽。git
好在Git考慮到了你們的感覺,這個問題解決起來也很簡單,在Git工做區的根目錄下建立一個特殊的.gitignore文件,而後把要忽略的文件名填進去,Git就會自動忽略這些文件。github
不須要從頭寫.gitignore文件,GitHub已經爲咱們準備了各類配置文件,只須要組合一下就可使用了。全部配置文件能夠直接在線瀏覽:https://github.com/github/gitignore數據庫
忽略文件的原則是:編輯器
舉個例子:測試
假設你在Windows下進行Python開發,Windows會自動在有圖片的目錄下生成隱藏的縮略圖文件,若是有自定義目錄,目錄下就會有Desktop.ini文件,所以你須要忽略Windows自動生成的垃圾文件:ui
# Windows: Thumbs.db ehthumbs.db Desktop.ini
而後,繼續忽略Python編譯產生的.pyc、.pyo、dist等文件或目錄:spa
# Python: *.py[cod] *.so *.egg *.egg-info dist build
加上你本身定義的文件,最終獲得一個完整的.gitignore文件,內容以下:操作系統
# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa
最後一步就是把.gitignore也提交到Git,就完成了!固然檢驗.gitignore的標準是git status命令是否是說「working directory clean」。code
使用Windows的童鞋注意了,若是你在資源管理器裏新建一個.gitignore
文件,它會很是弱智地提示你必須輸入文件名,可是在文本編輯器裏「保存」或者「另存爲」就能夠把文件保存爲.gitignore
了。server
$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt"
忽略文件夾寫法
經測試發現,若要忽略一個文件夾下的部分文件夾,應該一個一個的標示。可能有更好的方法。 若test下有多個文件和文件夾。若要ignore某些文件夾,應該這個配置.gitignore文件。若test下有test1,test2,test3文件。要track test3,則.gitignore文件爲: test/test1 test/test2 !test/test3 若爲: test/ !test/test3 ,則不能track test3。 Git 中的文件忽略 1. 共享式忽略新建 .gitignore 文件,放在工程目錄任意位置便可。.gitignore 文件能夠忽略本身。忽略的文件,只針對未跟蹤文件有效,對已加入版本庫的文件無效。 2. 獨享式忽略針對具體版本庫 :.git/info/exclude針對本地全局: git config --global core.excludefile ~/.gitignore 忽略的語法規則: (#)表示註釋 (*) 表示任意多個字符; (?) 表明一個字符; ([abc]) 表明可選字符範圍 若是名稱最前面是路徑分隔符 (/) ,表示忽略的該文件在此目錄下。 若是名稱的最後面是 (/) ,表示忽略整個目錄,但同名文件不忽略。 經過在名稱前面加 (!) ,表明不忽略。 例子以下: # 這行是註釋 *.a # 忽略全部 .a 偉擴展名的文件 !lib.a # 可是 lib.a 不忽略,即時以前設置了忽略全部的 .a /TODO # 只忽略此目錄下 TODO 文件,子目錄的 TODO 不忽略 build/ # 忽略全部的 build/ 目錄下文件 doc/*.txt # 忽略如 doc/notes.txt, 可是不忽略如 doc/server/arch.txt