github push文件过大如何解决?

git push 文件大于100M导致push失败。

首先有一点要注意:GitHub建议上传的文件大小要求是不超过50M,允许的大小是不超过100M,如果你实在有需要,可以使用git lfs大存储,网址:https://git-lfs.github.com

今天我在push本地仓库到GitHub之前往仓库里就加了一个100多M的大文件,之后依次执行了

git add .
git commit -m "add new file"
git push -u origin master

然而push时出现了如下报错

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: f733e04b6245057887da1dc0d0628aee
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File XXXXXX.pdf is 145.92 MB; this exceeds GitHub's file size limit of 100.00 MB

傻傻的我当时想到的就是先删除本地仓库中的这个大文件,然后重新git add , git commit , git push.然而push时还是报了同样的错误。我想应该是我的操作只是删除了本地仓库里的大文件,但是却并没有修改掉git 之前的提交记录,所以push的时候依然还是会显示你push了大文件。我之后便按照git 的官方help文档去处理,
Removing files from a repository’s history
但是在按照这个流程操作时又出现了问题,我执行git rm --cached命令时出现了如下错误

fatal: pathspec 'XXXX' did not match any files

一开始我想应该是由于我已经移除了本地文件才会出现这样找不到文件的错误,于是我又先将原文件拷贝进之前的文件夹,然后继续执行rm命令,结果仍然报了上述操作,自然后面的git commit --amend -CHEAD 和 git push 也就无法进行了。
此路不通,我又换了个法子,也就是用reset恢复命令。
首先执行:git log 查看你之前的提交日志,然后执行git reset XXX,恢复到你没有添加大文件的那次commit记录。之后再按命令去git push 即可。

commit 184512f9eb2c16d1ade200d65ffb6f55f89f4c77 (HEAD -> master)
Author: Your Name <you@example.com>
Date:   Fri Oct 12 19:09:49 2018 +0800

    commit all

commit 89b6883057297af12c18ec5c57d87d8115fa6a9b
Author: Your Name <you@example.com>
Date:   Fri Oct 12 18:41:42 2018 +0800

    add file

commit c996cf99382e8b3fdbd95d4cbc230910c5f9be71
Author: Your Name <you@example.com>
Date:   Fri Oct 12 18:19:06 2018 +0800

    add file

commit f09a91e38682e25c3d75e82e64d9d04cb0b68723 (origin/master, origin/HEAD)
Author: XXXXX <XXXXX@163.com>
Date:   Fri Oct 12 14:02:10 2018 +0800


还有一种方法是利用checkout处理分支,但这个我还不大会。

### GitHub 文件上传解决方案 当尝试将文件上传到 GitHub 时,可能会遇到由于文件小限制而导致的问题。Git Large File Storage (LFS) 是一种专门设计用于处理文件Git 扩展工具[^1]。 #### 安装 Git LFS 如果在安装 `git-lfs` 的过程中遇到了类似于 “Unable to locate package git-lfs” 的错误,则可以按照以下方法解决问题: - **Ubuntu/Debian 系统** 需要先更新包管理器并添加正确的源地址。可以通过运行以下命令来完成操作: ```bash sudo apt-get update && sudo apt-get install software-properties-common sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git-lfs ``` - **CentOS/RHEL 系统** 对于 CentOS 或 RHEL 用户,可使用 yum 命令进行安装: ```bash curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash sudo yum install git-lfs ``` 上述步骤能够有效解决无法找到软件包的问题][^[^24]。 #### 使用 Git LFS 进行文件管理 一旦成功安装了 Git LFS 工具之后,就可以通过以下几个方面实现对文件的有效管理和上传: 1. 初始化 Git LFS 并跟踪特定类型的文件: ```bash git lfs install git lfs track "*.psd" ``` 上述代码表示初始化 Git LFS,并设置 `.psd` 文件Git LFS 跟踪[^3]。 2. 提交更改并将文件推送到远程仓库: ```bash git add .gitattributes git commit -m "启用 Git LFS 和跟踪 PSD 文件" git push origin master ``` 对于已经存在的存储库中的文件,也可以执行类似的流程。首先克隆该存储库,然后拉取其中的文件数据: ```bash git clone https://github.com/user/repo.git cd repo git lfs pull ``` 这一步骤会确保所有被标记为 LFS 跟踪的文件都被正确下载下来。 #### 总结 通过以上方式不仅可以顺利解决本地文件因为体积过而难以上传至 GitHub 的难题,还能够让团队协作更加高效便捷。同时注意,在实际应用当中还需要考虑网络环境以及服务器配置等因素可能带来的影响。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值