我有一个包含icons/
目录中SVG图像的仓库.尝试将这些图像添加到repo失败,Git抱怨错误消息:
The following paths are ignored by one of your .gitignore files: public/img/icons/my-icon.svg Use -f if you really want to add them.
当我使用跟踪被忽略的文件时git-check-ignore
,我发现Icon?
我.gitignore_global
文件中的规则是罪魁祸首.
$ git check-ignore -v public/img/icons/my-icon.svg /Users/ryanatallah/.gitignore_global:42:Icon? public/img/icons/my-icon.svg
什么可能是这个问题的优雅解决方案?
事实证明这个问题是由一个Git bug导致的,其中Icon?
gitignore规则也匹配诸如的目录icons/
.解决方案是在结尾处使用正确的控制字符(这是一个回车符)编写规则.此问题解释Icon?
了为具有自定义图标的目录自动创建的文件.
该博客文章中记录的解决方案是使用回车符将该规则正确地写入我的全局gitignore文件.以下Ruby脚本可以解决这个问题:
>> f = File.open(".gitignore", "a+") # append => #<File:.gitignore> >> f.write("Icon\r\r") => 8 >> f.close => nil