(Isto não é uma resposta. Era para ser um comentário sobre a questão, mas esta conta não tem a reputação de comentar ainda. Desculpe por isso.)
Isso parece um bug no npm. Eu não vejo nada que você esteja fazendo errado. Tente aqui .
Quando executo npm install --save git+ssh://[email protected]:bmahsman/bubblegum.git
, npm
verifica os arquivos de texto que git lfs
coloca no lugar dos ativos reais. Parece que npm
não está usando ~/.gitconfig
da minha conta de usuário local, ou seja, os filtros lfs
não estão sendo usados e git-lfs
não está sendo chamado.
Eu verifiquei que git-lfs
e git lfs
funcionam em cmd
e bash
. Eu tentei o comando npm install
acima em cmd
e bash
e obtive o mesmo resultado. Eu verifiquei que git clone [email protected]:bmahsman/bubblegum.git
do zero produz os arquivos binários reais em vez dos arquivos de texto.
Meu repositório está localizado em https://github.com/bmahsman/bubblegum
e eu uso o Git LFS para gerenciar arte binária e recursos de som, por isso ele tem um .gitattributes
modificado com 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
Minha conta de usuário local está configurada para git
desta maneira:
$ cat ~/.gitconfig
[user]
name = Brynn Mahsman
email = [email protected]
[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
Estou usando o Windows 7.
$ npm -v
2.14.7
$ git --version
git version 2.6.2.windows.1
Editar: caso seja um bug, eu fiz um problema no GitHub .
(Isto não é uma resposta. Era para ser um comentário sobre a questão, mas esta conta não tem a reputação de comentar ainda. Desculpe por isso.)
Isso parece um bug no npm. Eu não vejo nada que você esteja fazendo errado. Tente aqui .
Depois de examinar a saída de git
e npm
com export GIT_TRACE=1
e npm config loglevel verbose
, acredito que descobri como fazer isso funcionar, pelo menos com o GitLab (já mudei do GitHub para GitLab, que também suporta o Git LFS).
Etapa 1. Dentro do seu repositório, execute o seguinte comando (substitua bubblegum
pelo nome do seu repositório) e, em seguida, confirme o .gitconfig
e o push resultante:
$ git config -f .gitconfig lfs.url https://gitlab.com/brynn.mahsman/bubblegum.git/info/lfs
Etapa 2. No diretório em que você deseja npm install
do seu projeto, execute, por exemplo:
$ npm install -S https://gitlab.com/brynn.mahsman/bubblegum.git
Para que isso funcione com o GitHub, parece que o lfs.url
a usar é: https://api.github.com/lfs/<user or organization>/<repository name>
, por exemplo:
$ git config -f .gitconfig lfs.url https://api.github.com/lfs/brynn.mahsman/bubblegum
Você pode querer instalar um gerenciador de credenciais para que não precise digitar seu nome de usuário e senha sempre que git-lfs
for recuperar um arquivo. No Windows, eu uso o gerenciador de credenciais da Microsoft .
O .gitconfig
que você confirma no repositório permite que os comandos git usados por npm install
saibam o que usar lfs.url
. Não tenho certeza se essa solução apenas mascara o fato de que npm install
não consegue descobrir o lfs.url
sem que você o especifique explicitamente em .gitconfig
. Em outras palavras, quando executo o comando git clone https://gitlab.com/brynn.mahsman/bubblegum.git
, git
de alguma forma conhece o lfs.url
mesmo se eu não tiver o .gitconfig
no repositório.
Tags git