我有一个包含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
这个问题的优雅解决方案是什么?
答案 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