如何设置 npm 从使用 Git LFS 的 GitHub 存储库安装?

如何设置 npm 从使用 Git LFS 的 GitHub 存储库安装?

当我运行 时,检查替换实际资产的文本文件。它似乎没有使用我的本地用户帐户,即过滤器未被使用且未被调用。npm install --save git+ssh://[email protected]:bmahsman/bubblegum.gitnpmgit lfsnpm~/.gitconfiglfsgit-lfs

我验证了 和git-lfs都可以在和git lfs中工作。我在 和 中尝试了上述命令,得到了相同的结果。我验证了从头开始​​ 会生成实际的二进制文件而不是文本文件。cmdbashnpm installcmdbashgit clone [email protected]:bmahsman/bubblegum.git

我的 repo 位于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 = [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

我正在使用 Windows 7。

$ npm -v
2.14.7

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

编辑:如果这是一个错误,我已经在GitHub

答案1

(这不是答案。这应该是对问题的评论,但该帐户尚未具备评论的声誉。对此深感抱歉。)

这看起来像是 npm 中的一个错误。我没发现你做错了什么。点击这里

答案2

git仔细研究了和npm的输出后export GIT_TRACE=1npm 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,我使用微软的凭证管理器


.gitconfig提交到存储库的 允许 使用的 git 命令npm install知道lfs.url要使用什么。我不确定这个解决方案是否只是掩盖了这样一个事实:如果您没有在 中明确指定 ,npm install就无法找出。换句话说,当我运行命令 时,即使我在存储库中没有 ,它也会以某种方式知道。lfs.url.gitconfiggit clone https://gitlab.com/brynn.mahsman/bubblegum.gitgitlfs.url.gitconfig

相关内容