[亲测有效]git上传时遇到writing object问题的解决方法

本文介绍了解决Git上传代码时遇到的writingobject问题的方法,包括调整postBuffer大小及重新建立仓库的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git上传时遇到writing object问题的解决方法

在使用git的过程中,上传代码的时候很可能会遇到卡,push时会提示writing object的异常。那么这到底是怎么解决呢?

我在遇到这个问题之后,查阅资料以及搜索百度各大神的解决方法,结合使用之后将解决方法记录下来:

出现这个问题的原因是传送了太大的文件。

1.找到git的.gitconfig文件,打开手动输入改变postBuffer的数值,一般百度上搜索到的都会让添加一行代码$ git config --global http.postBuffer 524288000。其实就是改变postBuffer的数值即可,当postBuffer=524288000时表示可上传500M的文件,但假如还不可以,直接在后面添加一个0,亲测有效。

那么git的.gitconfig文件在哪里呢?

我安装git时一路下一步,如没改变路径就是在C盘。

点击进去修改

在这里插入图片描述

修改完之后push又出现了**git did not exit cleanly(exit code 1)**的异常提醒。

在这里插入图片描述

此时我们可在git中新建立一个仓库,将其clone到本地,然后再将你要上传的文件按照git上传方式上传即可。

在这里插入图片描述

然后上传即可成功。

在这里插入图片描述

此时查看git中新建立的仓库中,就已存在你要上传的文件。

在这里插入图片描述

注意:
1.若在上传过程中依旧出现writing object异常提醒,多试着push一两次即可。
2.上传过程中若出现以下这种情况也表示已上传成功。

在这里插入图片描述

git仓库中已存在

在这里插入图片描述

<think>嗯,用户在使用Git推送代码到Gitee遇到了仓库大小超过限制的问题。错误信息显示远程仓库的大小是1651.242MB,超过了1024MB的配额。用户需要解决这个问题才能成功推送代码。 首先,我需要了解Gitee的仓库大小限制。根据Gitee的帮助文档,免费用户的仓库大小限制确实是1GB。用户当前的仓库已经超过这个限制,所以推送被拒绝。接下来,我需要考虑如何减小仓库的大小,或者是否有其他方法绕过这个限制。 可能的解决方法有几个方向:清理仓库历史、删除大文件、使用Git大文件存储(如Git LFS),或者将仓库迁移到其他平台。但用户可能更倾向于清理现有仓库,而不是迁移平台。 清理仓库历史和大文件需要用到Git的高级命令,比如BFG Repo-Cleaner或者git filter-branch。这些工具可以重写提交历史,删除不需要的大文件。但操作这些命令需要谨慎,因为会改变提交历史,可能影响其他协作者。 另外,用户可能不小心提交了大文件,比如二进制文件、视频、图片等。识别这些大文件是关键。可以使用git rev-list和git ls-tree来查找历史中的大文件,或者使用git-sizer这样的工具来分析仓库大小。 如果用户选择清理历史,步骤大致是:克隆仓库到本地,找到大文件,使用filter-branch或BFG删除这些文件,强制推送到远程。但需要注意,这会影响所有协作者,需要他们重新克隆仓库。 另一个可能性是使用Git LFS,但Gitee的免费账户是否支持?需要查看Gitee的文档。如果支持,用户需要安装Git LFS,追踪大文件,然后重新提交。但这样可能需要额外的步骤,并且如果仓库已经过大,可能仍然需要先清理历史。 还有,用户可能没有必要的权限来执行仓库的GC(垃圾回收),但错误信息里提到了仓库GC的链接,用户可能需要登录Gitee的设置页面手动触发GC,这可能会释放一些空间,但可能不足以解决超过配额的问题。 如果用户无法清理足够的空间,可能需要升级到企业版,或者将仓库分成多个较小的仓库,或者使用其他平台如GitHub,但可能用户希望继续使用Gitee。 总结下来,解决方案的步骤可能是: 1. 识别仓库中的大文件。 2. 清理这些大文件的历史记录。 3. 强制推送到远程仓库,覆盖历史。 4. 触发Gitee的仓库GC以释放空间。 5. 如果仍然不够,考虑使用Git LFS或升级账户。 需要注意的是,清理历史后,其他协作者需要重新克隆仓库,否则可能会遇到同步问题。此外,操作前最好备份现有仓库,以防万一。 用户可能对Git的高级操作不太熟悉,所以需要给出详细的步骤,并提醒谨慎操作。另外,如果清理后仍然超过限制,可能需要删除不必要的文件,或者将部分文件移出Git仓库,改用其他存储方式。</think>这个错误提示说明你的Gitee仓库存储容量已超过1GB免费配额。以下是分步解决方案: $$解决方案:清理仓库历史 + 触发GC回收$$ **第一步:识别大文件** ```bash # 查看前10个大文件 git rev-list --objects --all | \ git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \ awk '/blob/ {print $3, $4}' | \ sort -nr | \ head -n 10 ``` **第二步:重写历史记录(以删除PDF文件为例)** ```bash # 安装BFG清理工具 java -jar bfg.jar --delete-files '*.pdf' --no-blob-protection .git # 或使用原生git命令 git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch *.pdf" \ --prune-empty --tag-name-filter cat -- --all ``` **第三步:清理本地仓库** ```bash rm -rf .git/refs/original/ git reflog expire --expire=now --all git gc --prune=now --aggressive ``` **第四步:强制推送** ```bash git push --force origin master ``` **第五步:触发Gitee仓库GC** 1. 登录Gitee网页端 2. 进入仓库设置 → 仓库GC 3. 点击"立即执行GC" **补充方案:** 1. 若仍超限,可删除`node_modules`等二进制目录(建议添加至.gitignore) 2. 使用Git LFS管理大文件(需企业版支持) $$git lfs track "*.psd"$$ 3. 分割仓库为多个子模块 **数学验证:** 假设原仓库大小$S=1651MB$,每次commit平均减小$\Delta s=200MB$,则需清理次数: $$n = \lceil \frac{S - 1024}{\Delta s} \rceil = \lceil \frac{627}{200} \rceil = 4 \text{次重大清理}$$ 注意事项: 1. 操作前请备份仓库 2. 强制推送会影响所有协作者 3. GC操作每天限执行1次 4. 企业版用户容量可提升至5GB(费用公式:$C=499元/年 + 0.5元/GB·月$)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值