我有一个配置了两个遥控器的git存储库。
这些远程服务器之一是本地裸git存储库,可通过ssh访问(其URL为ssh://username@host:/home/username/repo.git
),并且不支持git LFS。
是否可以为该远程终端禁用LFS,并使git push
发送被跟踪文件的原始内容而不是指针?
我遵循了这些文章的建议,但没有帮助:
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,我很感谢有关如何执行此操作的建议。
答案 0 :(得分:1)
这里的问题是,Git 中的实际是内容指针文件。
如果您为远程服务器禁用LFS,那么您真正要做的是当我发送到给定的远程服务器时,我不想将真实文件发送到LFS服务器,我只是想发送指向Git服务器的内容指针。
要将实际文件作为提交的一部分发送,它们实际上必须是提交的一部分。请记住,git push
适用于提交,而不是文件。 Git-LFS对单个文件进行操作,这些文件的内容指针存储在基础Git存储库中。
如果您进行的提交包含实际文件而不是内容指针,并且发送这些提交而不是仅包含内容指针的提交,则可以;但是请注意,这是一个不同的/独立的历史记录,无法轻松地将其与基于LFS指针的历史记录进行核对。 Git-LFS本身可能对此没有内置支持,因为处理不好将是一场噩梦。