Когда я запускаю npm install --save git+ssh://git@github.com:bmahsman/bubblegum.git , npm проверяет текстовые файлы, которые git lfs помещает вместо реальных ресурсов. Похоже, что npm не использует мою локальную учетную запись пользователя ~/.gitconfig , то есть фильтры lfs не используются и git-lfs не вызывается.

Я проверил, что git-lfs и git lfs работают из cmd и bash . Я попробовал вышеупомянутую команду npm install в cmd и в bash и я получил тот же результат. Я проверил, что git clone git@github.com:bmahsman/bubblegum.git с нуля создает реальные текстовые файлы вместо текстовых файлов.

Мой репозиторий находится по адресу https://github.com/bmahsman/bubblegum и я использую Git LFS для управления бинарными художественными и звуковыми ресурсами, поэтому в нем есть .gitattributes модифицированные git lfs track:

$ cat ./.gitattributes
*.png filter=lfs diff=lfs merge=lfs -text
*.ogv filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text

Моя локальная учетная запись настроена для git следующим образом:

$ cat ~/.gitconfig
[user]
    name = Brynn Mahsman
    email = brynn.mahsman@gmail.com
[merge]
    ff = no
[credential]
    helper = cache
[alias]
    sc = git clone --recursive
    sp = push --recurse-submodules=on-demand
    su = submodule update --remote --merge
[push]
    default = simple
[filter "lfs"]
    clean = git-lfs clean %f
    smudge = git-lfs smudge %f
    required = true

Я использую Windows 7.

$ npm -v
2.14.7

$ git --version
git version 2.6.2.windows.1

редактировать: в случае, если это ошибка, я сделал проблему на GitHub.

2 ответа2

1

(Это не ответ. Предполагалось, что это будет комментарий к вопросу, но эта учетная запись еще не имеет репутации комментировать. Извини за это.)

Это похоже на ошибку в npm. Я не вижу ничего, что ты делаешь неправильно. Попробуй здесь.

0

Проанализировав вывод из git и npm с export GIT_TRACE=1 и npm config loglevel verbose , я думаю, я понял, как заставить это работать, по крайней мере, с GitLab (с тех пор я перешел с GitHub на GitLab, который также поддерживает Git LFS).

Шаг 1. Внутри вашего репозитория выполните следующую команду (замените bubblegum на имя вашего репозитория), а затем зафиксируйте полученный .gitconfig и нажмите:

$ git config -f .gitconfig lfs.url https://gitlab.com/brynn.mahsman/bubblegum.git/info/lfs

Шаг 2. В каталоге, в который вы хотите npm install свой проект, запустите, например:

$ npm install -S https://gitlab.com/brynn.mahsman/bubblegum.git


Для того чтобы это работало с GitHub, может показаться, что используемым lfs.url является: https://api.github.com/lfs/<user or organization>/<repository name> , например:

$ git config -f .gitconfig lfs.url https://api.github.com/lfs/brynn.mahsman/bubblegum


Возможно, вы захотите установить менеджер учетных данных, чтобы вам не приходилось вводить имя пользователя и пароль каждый раз, когда git-lfs отправляется для получения файла. Для Windows я использую диспетчер учетных данных Microsoft.


.gitconfig вы фиксируете в репозитории, позволяет командам git, используемым npm install узнать, какой lfs.url использовать. Я не уверен, что это решение маскирует только тот факт, что npm install не может определить lfs.url без явного указания его в .gitconfig . Другими словами, когда я запускаю команду git clone https://gitlab.com/brynn.mahsman/bubblegum.git , git каким-то образом знает lfs.url даже если у меня нет .gitconfig в репозитории.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .