有些時候,必須把某些文件放到Git工做目錄中,但又不能提交它們,好比保存了數據庫密碼的配置文件等,每次git status
都會顯示Untracked files ...
git
解決這個問題也很簡單,在Git工做區的根目錄下建立一個特殊的.gitignore
文件,而後把要忽略的文件名填進去,Git就會自動忽略這些文件。github
.gitignore
文件不須要從頭寫,GitHub已經爲咱們準備了各類配置文件,只須要組合一下就可使用了。全部配置文件能夠直接在線瀏覽:<https://github.com/github/gitignore>;正則表達式
.class
文件;舉個例子:shell
假設你在Windows下進行Python開發,Windows會自動在有圖片的目錄下生成隱藏的縮略圖文件,若是有自定義目錄,目錄下就會有Desktop.ini
文件,所以你須要忽略Windows自動生成的垃圾文件:數據庫
# Windows: Thumbs.db ehthumbs.db Desktop.ini
而後,繼續忽略Python編譯產生的.pyc
、.pyo
、dist
等文件或目錄:ui
# Python: *.py[cod] *.so *.egg *.egg-info dist build
加上本身定義的文件,最終獲得一個完整的.gitignore
文件,內容以下:spa
# 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
。操作系統
在 .gitignore 文件中,每一行的忽略規則的語法以下:
1)空格不匹配任意文件,可做爲分隔符,可用反斜槓轉義
2)以「#」開頭的行都會被 Git 忽略。即#開頭的文件標識註釋,可使用反斜槓進行轉義。
3)可使用標準的glob模式匹配。所謂的glob模式是指shell所使用的簡化了的正則表達式。
4)以斜槓"/"開頭表示目錄;"/"結束的模式只匹配文件夾以及在該文件夾路徑下的內容,可是不匹配該文件;"/"開始的模式匹配項目跟目錄;若是一個模式不包含斜槓,則它匹配相對於當前 .gitignore 文件路徑的內容,若是該模式不在 .gitignore 文件中,則相對於項目根目錄。
5)以星號"*"通配多個字符,即匹配多個任意字符;使用兩個星號"" 表示匹配任意中間目錄,好比`a//z`能夠匹配 a/z, a/b/z 或 a/b/c/z等。
6)以問號"?"通配單個字符,即匹配一個任意字符;
7)以方括號"[]"包含單個字符的匹配列表,即匹配任何一個列在方括號中的字符。好比[abc]表示要麼匹配一個a,要麼匹配一個b,要麼匹配一個c;若是在方括號中使用短劃線分隔兩個字符,表示全部在這兩個字符範圍內的均可以匹配。好比[0-9]表示匹配全部0到9的數字,[a-z]表示匹配任意的小寫字母)。
8)以歎號"!"表示不忽略(跟蹤)匹配到的文件或目錄,即要忽略指定模式之外的文件或目錄,能夠在模式前加上驚歎號(!)取反。須要特別注意的是:若是文件的父目錄已經被前面的規則排除掉了,那麼對這個文件用"!"規則是不起做用的。也就是說"!"開頭的模式表示否認,該文件將會再次被包含,若是排除了該文件的父級目錄,則使用"!"也不會再次被包含。可使用反斜槓進行轉義。code