禁用或正确安装每个远程的git LFS

时间:2020-06-01 13:07:47

标签: git git-lfs

我有一个配置了两个遥控器的git存储库。

这些远程服务器之一是本地裸git存储库,可通过ssh访问(其URL为ssh://username@host:/home/username/repo.git),并且不支持git LFS。

是否可以为该远程终端禁用LFS,并使git push发送被跟踪文件的原始内容而不是指针?

我遵循了这些文章的建议,但没有帮助:

Disable Git LFS for a remote

https://github.com/git-lfs/git-lfs/issues/3665#issuecomment-496549743

命令git push成功,但是我有指针文件而不是原始内容:

$ head ./src/LARGE-file.bin
version https://git-lfs.github.com/spec/v1
oid sha256:e4790eb8aeb78cc79ace0f3d9719875d95091fe97969302d6816f64b9f0f8850
size 1430976

总而言之,我的目标是为一个远程启用git LFS,为另一个远程禁用git LFS。

或者,也可以为该纯ssh远程服务器配置LFS,我很感谢有关如何执行此操作的建议。

1 个答案:

答案 0 :(得分:1)

这里的问题是,Git 中的实际是内容指针文件。

如果您为远程服务器禁用LFS,那么您真正要做的是当我发送到给定的远程服务器时,我不想将真实文件发送到LFS服务器,我只是想发送指向Git服务器的内容指针。

要将实际文件作为提交的一部分发送,它们实际上必须是提交的一部分。请记住,git push适用于提交,而不是文件。 Git-LFS对单个文件进行操作,这些文件的内容指针存储在基础Git存储库中。

如果您进行的提交包含实际文件而不是内容指针,并且发送这些提交而不是仅包含内容指针的提交,则可以;但是请注意,这是一个不同的/独立的历史记录,无法轻松地将其与基于LFS指针的历史记录进行核对。 Git-LFS本身可能对此没有内置支持,因为处理不好将是一场噩梦。