Удалите ссылку Git lfs на файл и добавьте ее напрямую в git

Мне нужно удалить указатель файла Git LFS и добавить файл непосредственно в Git.

У меня есть фильтр в .gitattributes для соответствия определенным файлам:

test/**/*.py filter=lfs diff=lfs merge=lfs -text

Как я могу изменить его, чтобы исключить 1 файл из этого шаблона?

Я пробовал что-то вроде этого:

test/**/*.py !test/my_dir/my_file.py filter=lfs diff=lfs merge=lfs -text

но вроде не работает... git говорит, что такого файла нет


person Kate Zz    schedule 06.12.2019    source источник
comment
Действительно ли это связано с Linux с нуля или это конфликт с акронимом Git Large File Support?   -  person Daniel H    schedule 06.12.2019
comment
Поддержка больших файлов Git   -  person Kate Zz    schedule 06.12.2019


Ответы (1)


Файл .gitattributes работает аналогично файлу .gitignore в отношении приоритета, однако синтаксис отличается. Я нигде не нашел это задокументировано, но я протестировал его локально и на GitHub.

После того, как вы добавите шаблон для lfs, вы можете просто добавить после него исключение, чтобы ваш файл .gitattributes выглядел так:

test/**/*.py           filter=lfs diff=lfs merge=lfs -text
test/my_dir/my_file.py filter=    diff=    merge=    text

Затем зафиксируйте файл .gitattributes.

Это выключит фильтр lfs для этого файла и не будет отслеживаться lfs в будущем. Если файл уже добавлен в репозиторий, удалите его из репозитория и добавьте заново.

$ git rm --cached test/my_dir/my_file.py
$ git add test/my_dir/my_file.py
$ git commit -m "File removed from lfs"
person rkedge    schedule 09.12.2019
comment
спасибо) я решила по другому, но так правильнее, я считаю.. - person Kate Zz; 10.12.2019