gitignore優先級小結

今天在項目裏添加了一個新的文件,發現被git忽略了,沒法提交。即使刪除項目的.gitignore全部內容也不識別。
後來發現雖然項目的.gitignore沒問題,可是全局的.gitignore_global裏的規則屏蔽了我新建的文件。以前在全局屏蔽文件里加了一些規則,時間長了忘了,新文件命名規則被命中而沒法加入git。git

優先級是項目.gitignore > 全局.gitignore。
全局git文件地址:~/.gitignore_global,能夠手動建立該文件(名字能夠自定義),而後在~/.gitconfig裏配置core的參數excludesfile爲剛纔建立文件的路徑:
添加這一句:github

[core]
excludesfile = /Users/chenpeng/.gitignore_global

或者執行命令改變excludesfile參數:緩存

git config --global core.excludesfile ~/.gitignore_global

此外還能夠經過修改項目的.git/info/exclude文件內容,添加忽略規則,這樣能夠不用修改.gitignore文件。隻影響本地項目。code

整體優先級 .git/info/exclude > .gitignore > .gitignore_globalget

一種特殊狀況:
若是先添加文件到git,再添加ignore規則將不生效,沒法忽略該文件,這是常見的一種場景。這時你會怎麼作?it

  1. 刪掉這個文件,提交git,而後添加.gitignore規則,而後再找回文件。這樣是能夠,可是不必這麼麻煩。
  2. 刪除git的文件跟蹤緩存,而後添加.gitignore規則:
git rm --cached FILENAME

不過若是項目共享了,其餘人應該也須要這麼操做,若是沒有提交到遠程庫能夠採用這種方法。配置

參考:
https://help.github.com/artic...
這個文件提供了一些通用忽略規則:
https://gist.github.com/octoc...file

相關文章
相關標籤/搜索