git 如何上传大文件

git 一般限制上传最大文件大小为 100M

一、安装lfs

# mac下请使用homebrew安装:
brew install git-lfs

# linux(unbuntu)下安装:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install git-lfs

二、使用lfs

# 1. 安装完成后,首先先初始化;如果有反馈,一般表示初始化成功
git lfs install

# 2. 如果刚刚下载的那个项目没啥更改,重新下一遍,不算麻烦事(因为下载大文件,一般会比较慢)
git lfs clone https://github.com/AABBBCC/aaa.git
# 在下载的过程中,你也可以查看一下,你刚刚无法解析的那个pkl大文件,是不是在这个项目中,(进入项目目录)使用如下指令:
cd aaa
git lfs track

# 3. 如果不想重新下载整个项目,可以使用如下命令,单独下载需要使用lfs下载的大文件。
git lfs fetch
git lfs checkout
#(备选:git lfs pull),不建议

上传配置

cd xxx #'xxx'是你本地仓库目录

设置LFS要管理的文件类型

# 因为我是zip模型文件过大,所以我的命令是*.zip,此处需要根据自己情况设定类型
$ git lfs track "*.zip"

执行完上面的命令后,会生成一个.gitattributes文件,要将其上传到远程git仓库。这里我把.gitattributes和大文件分开上传

$ git add .gitattributes
$ git commit -m '提交 .gitattributes 文件'
$ git push origin master(如果提交不了,后面可以加一个-f)

上传大文件

$ git add . # 根据自己情况更改
$ git commit -m "upload large files"
git push origin master(如果提交不了,后面可以加一个-f)

问题处理

错误1

WARNING: Authentication error: Authentication required: LFS only supported repository in paid enterprise.

处理

# 注: 命令中的{your_gitee}/{your_repo}是你的远程仓库地址,根据自己情况替换
git config lfs.https://gitee.com/{your_gitee}/{your_repo}.git/info/lfs.locksverify false

错误2

batch response: LFS only supported repository in paid enterprise.

处理

尝试删除./git/hooks/pre-push文件
rm .git/hooks/pre-push

错误3

batch response: LFS only supported repository in paid or trial enterprise.

处理

# 修改提交缓存大小为500M
git config --global http.postBuffer 524288000
# 或者设置更大的 1G
git config --global http.postBuffer 1048576000

尝试删除./git/hooks/pre-push文件
rm .git/hooks/pre-push

之后再重新进行push提交