gitignore优先级小结

今天在项目里添加了一个新的文件,发现被git忽略了,无法提交。即便删除项目的.gitignore所有内容也不识别。
后来发现虽然项目的.gitignore没问题,但是全局的.gitignore_global里的规则屏蔽了我新建的文件。之前在全局屏蔽文件里加了一些规则,时间长了忘了,新文件命名规则被命中而无法加入git。

优先级是项目.gitignore > 全局.gitignore。
全局git文件地址:~/.gitignore_global,可以手动创建该文件(名字可以自定义),然后在~/.gitconfig里配置core的参数excludesfile为刚才创建文件的路径:
添加这一句:

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

或者执行命令改变excludesfile参数:

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

此外还可以通过修改项目的.git/info/exclude文件内容,添加忽略规则,这样可以不用修改.gitignore文件。只影响本地项目。

总体优先级 .git/info/exclude > .gitignore > .gitignore_global

一种特殊情况:
如果先添加文件到git,再添加ignore规则将不生效,无法忽略该文件,这是常见的一种场景。这时你会怎么做?

  1. 删掉这个文件,提交git,然后添加.gitignore规则,然后再找回文件。这样是可以,但是没必要这么麻烦。
  2. 删除git的文件跟踪缓存,然后添加.gitignore规则:
git rm --cached FILENAME

不过如果项目共享了,其他人应该也需要这么操作,如果没有提交到远程库可以采用这种方法。

参考:
https://help.github.com/artic…
这个文件提供了一些通用忽略规则:
https://gist.github.com/octoc…

    原文作者:cp1001
    原文地址: https://segmentfault.com/a/1190000013059917
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞