关于git上传大文件的解决方案:使用Git LFS

关于git上传大文件的解决方案:使用Git LFS


前言:最近想要上传大文件到gitcode上,但是使用git上传的时候发现限制文件上传的大小限制到了10MB,真奇葩呀,我瞬间慌了,赶快把本地仓库中的那个大压缩包(500MB)给删除,然后换成10MB以内的文件,然后再去git add .进行重新的上传添加文件,再git commit -m "add",本来想着这样重新上传提交能够成功,毕竟我这次上传的文件没有超过10MB,但是我太单纯了,当我git push -u origin main执行之后,发现他上传的文件还是500MB,这是咋回事,我的500MB的文件明明已经删除了。为什么这次提交上传到远端仓库还要耗费500MB流量呢?到底该如何才能上传超过100MB的文件呢?


我查了很多文资料,首先先把这个每次提交上传都要上传500MB的问题给解决,这个问题主要是因为,仓库中上次已经上传和提交了那个大文件,只不过是向远端push的时候受限制了,所以说这个文件仍然存在在本地的缓存仓库中,被提交的记录中,要想销毁这个提交记录就要用到git reset HEAD^这个代码就是撤回commit提交的命令,一般都是用git reset HEAD^ --hard这个命令来重新进行commit,直到撤回到代码上显示没有commit的地方为止。下面的话就就可以看我之前写的文章:点击这里查看文章来清理一下暂存区,清理完成恢复到原来的状态后再上传就已经可以了,但是这时候虽热开心,但是我们上传文件仍然无法上传10MB以上的文件,这个问题到底该如何解决呢?


请看下面的上传大文件的解决方案:

前言:主要是运用Git LFS这个git扩展应用程序来实现的,这个程序可以将git上传的大文件转换成二进制的索引跟踪文件,存储到自己的存储池中而不占用git仓库中的内存,实现大文件的传送。

第一步:下载安装Git LFS

  1. 打开官方网站:官网链接
  2. 下载
  3. 安装,安装的时候它会自动检测到你的git的安装程序在哪里,他会询问你是否与这个程序相关联,你直接点是就行,然后下面都是傻瓜化的安装步骤。安装好然后就可以了
  4. 运行:你就新建一个文件夹,把里面放入你想要上传的大文件,然后有鼠标右键找到open git bash here,然后在里面输入git init初始化仓库,然后输入git lfs install这样就相当于可以运行LFS这个扩展应用了。

第二步:跟踪文件类型

下面的代码就是把你想要上传的大文件的文件类型让LFS进行跟踪一下,这样才能实现把文件交给LFS进行存储处理的下一步操作:

git  lfs track "*.zip"

下一步就是把这个跟踪的日志和里面的细节配置文件(.gitattributes文件)添加到仓库里面,保证推送到远端时这个文件也被上传到远端,能让远端知道是LFS进行处理的整个过程,方便远端获取文件时从LFS的存储池中找对地方进行获取。

git add .gitattributes

第三步:上传提交推送到远端

这一步就是我们平时使用git常用的git add .git commit -m "add file"git push origin main

git add file.zip
git commit -m "Add design file"
git push origin main

这个时候其实已经结束了,但是有些人就是因为之前传送大文件失败,再次上传时存储仓库又把之前的大文件再次上传,然后费尽力气才清空了仓库中那些存储,撤回了commit,那现在我们用LFS是不是也会有之前提交的文件存到LFS的存储池中没有被销毁呢?
其实我也不知道,但是我知道一些代码不知道能不能实现一些或者改善一些问题:

下面这个代码就是查看LFS追踪的文件类型:

git lfs track

下面这个代码是显示当前跟踪的文件列表:

git lfs ls-files

显示跟踪文件的当前状态:

git lfs status

撤销Git LFS跟踪的大文件类型,例如撤销跟踪.zip的文件跟踪:

git lfs untrack "*.zip"

然后再清理一下缓存:

git rm --cached "*.zip"

然后就没有了。

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值