由于Icon,Git忽略了图标文件?规则

时间:2014-01-14 09:14:05

标签: git gitignore

我有一个包含icons/目录中的SVG图像的仓库。试图将这些图像添加到回购失败,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

这个问题的优雅解决方案是什么?

2 个答案:

答案 0 :(得分:18)

原来这个问题是由Git bug引起的,其中Icon? gitignore规则也匹配icons/等目录。解决方案是在结尾处使用正确的控制字符(这是一个回车符)编写规则。 This question解释了为具有自定义图标的目录自动创建Icon?个文件。

this blogpost中记录的解决方案是使用回车将规则正确地写入我的全局gitignore文件。以下Ruby脚本可以解决这个问题:

>> f = File.open(".gitignore", "a+") # append
=> #<File:.gitignore>
>> f.write("Icon\r\r")
=> 8
>> f.close
=> nil 

答案 1 :(得分:3)

要覆盖父.gitignore文件中的规则,您需要使用!前缀,例如添加到本地.gitignore文件中:

!Icon