前言 :
關于.DS_Store是什么可以參考另一文章 如果刪除GIT中的.DS_Store
簡單的說Mac每個目錄都會有個文件叫.DS_Store,它是用于存儲當前文件夾的一些Meta信息。所以每次查看Git目錄的狀態,如果沒有add這個.DS_Store文件,會有Untracked files:
的提示,add了它,又會常有Changes not staged for commit:
的提示,是不是像個蒼蠅一樣特別煩?要解決這個煩人的小妖精,我們需要用到.gitignore文件去配置Git目錄中需要忽略的文件。
.gitignore
文件用于忽略文件,其規范如下
1.所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略。
2.可以使用標準的 glob 模式匹配。
3.匹配模式最后跟反斜杠(/)說明要忽略的是目錄。
4.要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。
glob
模式要點:
- *:任意個任意字符,
- ?:匹配一個任意字符,
所以,我們只需要在對應的Git目錄下,創建一個.gitignore文件,然后配置上.DS_Store即可,步驟如下:
1.命令行下使用touch .gitignore創建.gitignore文件(已有的直接到第二步)
wdw:test wdw$ touch .gitignore
2.open .gitignore,輸入.DS_Store 換行再輸入*/.DS_Store

3.保存即可生效,這里是忽略了當前目錄的.DS_Store以及其子目錄的.DS_Store
這樣問題就解決了么?并沒有,因為在今后的使用中,我發現我需要在所有Git目錄下加這樣的.gitignore配置,心都操碎了。有沒有辦法可以全局配置呢?讓這個配置對所有的Git目錄都生效。git config可以幫到我們。
git config --list命令可以讓你查看現有的配置,(在這里我們就先忽略其他的配置項了,有興趣的同學可以戳這里做更多的了解)實際上它是一個文件,文件的位置在用戶根目錄,名稱是.gitconfig。以下是添加全局忽略文件的步驟:
- 創建~/.gitignore_global文件,把需要全局忽略的文件寫入該文件,語法和.gitignore一樣
- 在~/.gitconfig中引入.gitignore_global文件
[core] **
excludesfile = /Users/reon/.gitignore_global **
也可以通過git config --global core.excludesfile/Users/reon/.gitignore_global命令來實現 - 配置成功,可以去驗證是否生效了
到這里,忽略文件的操作已經搞定了.
如果要刪除github上本來的文件可以參考如何刪除github上的文件