当前位置:  开发笔记 > 运维 > 正文

git-lfs文件存储在哪里?

如何解决《git-lfs文件存储在哪里?》经验,为你挑选了1个好方法。

我想弄清楚如何使用git-lfs.我使用gitlab EE服务器.

也许我错过了一些东西,但我没有找到任何关于git-lfs的文档,除了非常简短的教程介绍"track"命令和可爱的1分钟视频.

例如,我在repo中添加并跟踪一个3.7GB的tar文件,然后推送它:

git lfs track "*.tar"
cp /a.tar .
git add a.tar 
git commit -m "add a.tar"
git push origin master

问题1:在此过程结束时,是否已将a.tar上载到gitlab服务器上?目前还不清楚"添加"和"提交"命令需要花费一些时间(可能不够长,让我不知道3.7GB是否在那段时间内上传)但推动并没有花费任何时间(只有一小部分)第二).

问题2:如果文件是在服务器上传的,在哪里?显然与回购不在同一个地方(这就是重点).我问,因为我的服务器正在备份,我需要知道使用git-lfs是否要求我以任何方式更新它.

问题3:如果文件没有上传,这是否意味着repo的其他用户将获得添加文件的原始机器上的文件的链接?有没有办法将其更改为服务器上的某个位置?(回到问题2)

问题4:在克隆了repo之后,确实没有完整的3.4G文件,"只是"带有内容的文本文件:

version https://git-lfs.github.com/spec/v1
oid sha256:4bd049d85f06029d28bd94eae6da2b6eb69c0b2d25bac8c30ac1b156672c4082
size 3771098624

这当然是令人敬畏的和重点.但是如果需要访问完整文件呢?怎么下载呢?

我很乐意直接回答这个问题或链接到正确的文档.



1> houtanb..:

答案1 如本视频(1:27)中所述,当您按下git lfs它所跟踪的文件时,它会被拦截并放置在另一台服务器上,并在您的git存储库中留下一个指针.正如您在问题4中提供的参考文献中所看到的,这对您有用.

答案2 这有点棘手.阅读文档git lfs smudge,我们有:

从标准输入读取Git LFS指针文件,并将相应大文件的内容写入标准输出.如果需要,从Git LFS端点下载文件的内容.参数(如果提供)仅用于进度条.

git lfs终端可以从输出中找到git lfs env.我的"端点"是我的存储库下面(但不在其中)的文件夹,这使我认为GitLab在我们的帐户空间中的服务器上创建了一个git存储库来存储二进制文件.

那就是说,我不知道你是如何支持的.GitHub提供了一个"未处于生产就绪状态" 的git lfs服务器,因此您需要做一些工作来设置它,以便将二进制文件上传到您管理的服务器.如果备份这些文件是一个优先事项,你不希望使用的一个实现方式(Amazon S3的,等等),你可以尝试另一种二进制文件存储系统,用git的作品,如git-media,git-annex,git-fat,git-bigstore....我没有深入研究这些选项,所以无法提出建议.

答案3 如果文件未使用git lfs它上传,则会被推送使用,git并且您的git存储库中有一个二进制文件.但是,git lfs正如您在问题4中所说的那样上传了您的.

回答4 存储库的其他用户在安装git lfs到本地计算机上之后,只需键入git lfs pull以引入您使用的二进制文件git lfs.


不是OP,但是`git lfs pull`就是我想要的.:) 谢谢!(git-lfs新手)
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有