Git игнорировать файлы значков из-за значка? правило
У меня есть репо, которое включает SVG-изображения в каталоге icons/
. Попытка добавления этих изображений в репо завершается с ошибкой, а 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
Что может быть элегантным решением этой проблемы?
Ответы
Ответ 1
Оказывается, эта проблема вызвана Git ошибка, где правило Icon?
gitignore также соответствует каталогам, таким как icons/
, Решение состоит в том, чтобы написать правило с правильным символом управления (который является возвратом каретки) в конце. Этот вопрос объясняет, что файлы Icon?
автоматически создаются для каталогов с пользовательскими значками.
Решение, описанное в this blogpost, должно правильно написать правило в мой глобальный файл gitignore с возвратом каретки. Следующий Ruby script выполняет трюк:
>> f = File.open(".gitignore", "a+") # append
=> #<File:.gitignore>
>> f.write("Icon\r\r")
=> 8
>> f.close
=> nil
Ответ 2
Чтобы переопределить правила из родительского файла .gitignore
, вам нужно использовать префикс !
, например добавить в локальный файл .gitignore
:
!Icon