git lfs大文件管理

前几天公司要把项目从github仓库更换到阿里云仓库遇到了一个问题,github对上传的单个文件大小限制是1G,而阿里云是单个200M,这里就给我带来了一句吐槽和一个小麻烦,所以探索了一下解决办法并且记录下来,但是仍然会吐槽阿里云。
步骤:
1、到我们要上传的文件夹目录,初始化文件夹的git配置,

$ cd LFSTest/
$ git init

提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示: git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示: git branch -m <name>
已初始化空的 Git 仓库于 /Users/Desktop/LFSTest/.git/

这个时候已经初始化完成了

2、修改文件夹的远程仓库地址,这里我们以阿里云仓库为例

$ git remote add origin https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git

3、跟踪目录并提交

$ git add .
$ git commit
image.png

输入提交说明
按 i 键进入编辑状态,底部会出现输入提示


image.png

输入完成后按 esc 退出编辑状态,然后按 shift + :进入指令输入状态


image.png

然后输入 wq 按下 回车 保存并退出
[master(根提交) 478b14e] test lfs upload
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 largeFile

这个时候我们已经提交成功了
4、接下来,推送至远程仓库

$ git push -u origin master

然后,我们就得到了一个错误

枚举对象中: 3, 完成.
对象计数中: 100% (3/3), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 104.05 MiB | 4.58 MiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
remote: 推送失败,以下文件大小超过单文件 200MB 的系统限额:
remote: Blob ID  | Size(MB) | File name
remote: -------------------------------
remote: db54194e | 260.23   | largeFile
remote: 
remote: 大文件请使用 Git-LFS 管理,使用说明: https://help.aliyun.com/document_detail/206887.html
To https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git
 ! [remote rejected] master -> master (pre-receive hook declined)
错误:无法推送一些引用到 'https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git'

这个时候,我们需要根据提示,使用git-lfs大文件管理进行操作,来把我们的大文件推上去

下面引入正题
1、让本地仓库支持git lfs

$ git lfs install

Updated Git hooks.
Git LFS initialized.

2、通过git lfs追踪本地仓库内的大文件,这里介绍两种方式:
a:跟踪文件类型,这里以希望跟踪".mp4"类型的文件为例

$ git lfs track "*.mp4"

b:直接追踪某个文件

$ git lfs track "largeFile"

Tracking "largeFile"

注:通过该命令可以查看当前正在追踪的文件

$ git lfs track

Listing tracked patterns
    largefile (.gitattributes)
Listing excluded patterns

这个时候说明lfs已经追踪到名为 “largefile”的文件了

3、添加暂存

$ git add largeFile

4、提交

$ git commit

[master 12d3f33] commit largefile
1 file changed, 0 insertions(+), 0 deletions(-)

5、推送至远程仓库

$ git push --set-upstream origin master

Uploading LFS objects: 100% (1/1), 273 MB | 0 B/s, done.                        
枚举对象中: 6, 完成.
对象计数中: 100% (6/6), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (4/4), 完成.
写入对象中: 100% (6/6), 104.05 MiB | 4.95 MiB/s, 完成.
总共 6(差异 0),复用 0(差异 0),包复用 0
remote: 推送失败,以下文件大小超过单文件 200MB 的系统限额:
remote: Blob ID  | Size(MB) | File name
remote: -------------------------------
remote: db54194e | 260.23   | largeFile
remote: 
remote: 大文件请使用 Git-LFS 管理,使用说明: https://help.aliyun.com/document_detail/206887.html
To https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git
 ! [remote rejected] master -> master (pre-receive hook declined)
错误:无法推送一些引用到 'https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git'

好尴尬,为什么还是不行

原来我们在安装lfs之前有过一次提交包含"largeFile",lfs并不能追踪历史记录里面的大文件,所以我们需要执行一个命令,把提交记录里面所包含的"largeFile"都追踪到
$ git lfs migrate import --include-ref=master --include="largeFile"

然后执行推送

$ git push --set-upstream origin master

Uploading LFS objects: 100% (1/1), 273 MB | 0 B/s, done.                        
枚举对象中: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (4/4), 完成.
写入对象中: 100% (5/5), 502 字节 | 502.00 KiB/s, 完成.
总共 5(差异 1),复用 0(差异 0),包复用 0
To https://codeup.aliyun.com/63802b075db8487f76c80eec/LFSTest.git
* [new branch]      master -> master
分支 'master' 设置为跟踪 'origin/master'。

这个时候我们可以看到在远程仓库的大文件已经有了通过lfs存储的标识了


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容