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

多人写作注意代码同步问题

你可能感兴趣的:(git、gitee、sourcetree上传大文件)