git、gitee、sourcetree上传大文件
上传项目到Gitee碰到单个文件超过100M
remote: error: File: f422c55c723a183a1944cbec840c0171042c8251 211.94 MB, exceeds 100.00 MB.
意思是单个文件超过100M导致上传失败。搜索到这篇文章关于gitee无法上传大于100M文件的解决方法,自己尝试后成功绕过了gitee对个人社区版的限制。
首先我要说的是网上之前说修改的方法已经不行了,应该是git把这个给修复了。
git config http.postBuffer 524288000
所以目前只能用git lfs工具。
一、安装Git lfs
1.centos安装方法
可以按照github上提供的安装方法,运行下列命令进行安装:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
sudo yum install git-lfs
git lfs install
在centos上按照官方提供的步骤报错,大概意思是下载不到安装包
使用rpm包安装,从在官网下载安装包安装,安装方法如下:
在上述官网中找到Downloads,然后选择相应的系统安装包下载
对于centos来说,下载rpm(可以通过lsb_release -a查看系统版本)
下载rpm包后使用sudo rpm -ivh 包名.rpm进行安装
运行git lfs install,如果显示Git LFS initialized说明安装成功
2.Mac 安装运行以下命令节课
brew install git-lfs
二、使用方法
1.可开启lfs功能,打开终端运行以下命令:
cd xxx #'xxx'是你本地仓库目录
# 只需执行一次即可开启lfs功能
git lfs install
2.选择文件类型:设置LFS要管理的文件类型
(1)、单个文件执行如下命令
#因为我是framework库过大,所以我的命令是*.framework,此处需要根据自己情况设定类型
git lfs track "*.framework"
(2)、使用git大文件管理方式, 跟踪文件夹中的所有文件(因我要上传整个文件夹里的所有子文件所以使用的是这个)
// 忽略文件夹中的所有文件(包含文件夹)
// git lfs track "Pods/TXLiteAVSDK_Professional/**"
git lfs track "dir/**"
// 忽略文件夹中的文件(不包含文件夹)
git lfs track "dir/*"
3.配置远程仓库
执行完上面的命令后,会生成一个.gitattributes文件,要将其上传到远程gitee仓库。这里我把.gitattributes和大文件分开上传。
git add .gitattributes
git commit -m '提交 .gitattributes 文件'
git push origin master(如果提交不了,后面可以加一个-f)
配置提交后就可正常上传文件
git add -A 提交所有 或指定当前大文件提交
$ git commit -m "大文件"
$ git push origin master -f
4.上传时可能碰到的错误:
报错Message: LFS only supported repository in paid enterprise.: exit status 128
解决方法:
rm .git/hooks/pre-push
git push -u origin "master"
报错message:WARNING: Authentication error: Authentication required: LFS only supported repository in paid enterprise.
解决办法
git config lfs.https://gitee.com/{your_gitee}/{your_repo}.git/info/lfs.locksverify false
报错信息:Remote “origin” does not support the LFS locking API. Consider disabling it with:…
git lfs push origin master --all
若已提交报错可重置到上次版本,执行命令如下
1.查看提交记录获取commit_id
git log
2.回退命令
git reset --hard HEAD^` 回退到上个版本
git reset --hard HEAD~3` 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id` 退到/进到 指定[commit](https://so.csdn.net/so/search?q=commit&spm=1001.2101.3001.7020)的sha码
2.强推到远程仓库
git push origin HEAD --force
多人写作注意代码同步问题