Git上传大文件夹LFS

#什么是Git LFS
Git LFS(Large File Storage) 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。
简单的说,就是如果你想传超过100M的二进制文件到GitHub,你就要用Git LFS。

注意事项:GitHub、GitLab、Coding。gitee(也就是git.oschina.net)目前还不支持。

#使用Git Large File Storage
##1.下载LFS
安装 https://git-lfs.github.com/
##2.安装LFS

jingjing:~ anpengtao$ brew install git-lfs

##3.运行并更新相关库

jingjing:~ anpengtao$ git lfs install
Git LFS initialized.

##4.选择您希望Git LFS管理(或直接编辑.gitattributes)的文件类型

jingjing:InteractionBaby anpengtao$ git lfs track  "KidLibrary/KidLibrary/TCPlayer/QALSDK.framework/QALSDK"

Tracking "KidLibrary/KidLibrary/TCPlayer/QALSDK.framework/QALSDK"

默认在当前文件夹下面会生成 .gitattributes 文件
open .gitattributes 可以进行相关配置
#####追踪单个文件:
git lfs track "FrameworkFold/XXXFramework/xxx"
#####追踪指定类型的文件:
git lfs track "*.dmg"
#####不再使用 Git LFS 管理指定的文件:
git lfs untrack "*.dmg"

追踪指定目录下的文件:

git lfs track "FrameworkFold/*"

枚举目前所有被 Git LFS 管理的具体文件:

git lfs ls-files

针对使用了 LFS 的仓库进行了特别优化的 clone 命令,显著提升获取LFS 对象的速度,接受和 git clone 一样的参数。

git lfs clone https://github.com/user/repo.git
[1] git lfs clone 通过合并获取 LFS 对象的请求,减少了 LFS API 的调用,并行化 LFS 对象的下载,从而达到显著的速度提升。git lfs clone 命令同样也兼容没有使用 LFS 的仓库。即无论要克隆的仓库是否使用 LFS,都可以使用 git lfs clone 命令来进行克隆。
[2] 目前最新版本的 git clone 已经能够提供与 git lfs clone 一致的性能,因此自 Git LFS 2.3.0 版本起,git lfs clone 已不再推荐使用 Tracking “KidLibrary/KidLibrary/TCPlayer/QALSDK.framework/QALSDK”
.framework不可以直接创建,需要使用framework文件夹中的具体文件进行添加。
###5.1 git add
git add .gitattributes
###5.2 git add 具体文件
jingjing:InteractionBaby anpengtao$ git add KidLibrary/KidLibrary/TCPlayer/QALSDK.framework/QALSDK

错误实例:
jingjing:InteractionBaby anpengtao$ git add QALSDK
fatal: pathspec ‘QALSDK’ did not match any files
###6.git commit

jingjing:InteractionBaby anpengtao$ git commit -m "QALSDK"
输出结果为
[master 2e88312] QALSDK 
2 files changed, 4 insertions(+)
 create mode 100644 .gitattributes
 create mode 100644 KidLibrary/KidLibrary/TCPlayer/QALSDK.framework/QALSDK

###7. git push

jingjing:InteractionBaby anpengtao$ git push origin master
//输出结果为
list text here`Uploading LFS objects: 100% (1/1), 138 MB | 0 B/s, done                         
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 4 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 806 bytes | 806.00 KiB/s, done.
Total 8 (delta 3), reused 1 (delta 0)
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To https://github.com/隐蔽/InteractionBaby.git
   49073bf..2e88312  master -> master

#注意事项:
1.路径是从项目的第一层开始的物理路径,不是XCode中的文件路径
2.framework不能直接进行添加,需要删除大文件,第一步push提交framework中的小文件.h/.m等,然后单独将大文件导入到物理路径中,进行以上所有操作,提交。

在安装 Git LFS 之前,克隆了使用 Git LFS 的仓库,则被 Git LFS 管理的文件会被显示为文本指针,而非具体的文件。
查看这些文件指针,会发现类似如下内容
version https://git-lfs.github.com/spec/v1
oid sha256:4b99dbe6fe6f646b2026de93481045bbf34f995559db15fce34d192f1f320ef4
size 156154
解决办法就是,手动执行获取 Git LFS 对象的命令:

git lfs fetch
git lfs checkout
或
git lfs pull
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值