友链提交
请认真填写以下信息,谢谢!

博客信息

网站名称:楠笙

网站地址:https://blog.nanshengwx.cn/

Logo链接:https://blog.nanshengwx.cn/upload/logo.png

描述:记录生活与技术,空谈误国,实干兴邦

RSS地址:https://blog.nanshengwx.cn/rss.xml

(请填写完整的网址,例如:https://www.example.com)
(贵站展示本站链接的页面地址,一般是友链页面,填写后将自动验证友链关系有效性)
(用于抓取文章)
(用于接收通知)

git仓库迁移:如何保留完整提交历史并绕过 100MB 文件限制

楠笙
2026-01-06
点 赞
0
热 度
15
评 论
1
  1. 首页
  2. 工具
  3. git仓库迁移:如何保留完整提交历史并绕过 100MB 文件限制

文章摘要

我是笨蛋

前言

最近我在迁移一个浏览器项目的 Git 仓库时,遇到了一个典型但棘手的问题:本地有完整的提交历史,但无法推送到 Gitee,因为某个文件超过了 100MB 限制。经过一番探索,我最终成功将项目完整迁移到新的托管平台 cnb.cool,并保留了所有修改记录。本文将完整复盘这一过程,希望能帮助遇到类似问题的开发者。

操作

我首先选择了大家熟知的gitee平台来作为我的代码存储,于是我便开始在工作区执行git命令

# 更改 remote 地址为你的新仓库
git remote set-url origin ******

# 验证是否设置成功
git remote -v

你应该看到:

origin  ****** (fetch)
origin  ****** (push)
# 4. 推送所有本地分支(master, *** 等,有什么推送什么)
git push -u origin master
git push -u origin ***

这时候代码就已经成功推送到了代码仓库,但我在推送到gitee的时候报错,如下所示:

remote: Find the desired index: ..., size: 111.248MB, exceeds quota 100MB
remote: Please remove the file[s] from history and try again
! [remote rejected] master -> master (pre-receive hook declined)

Gitee(以及 GitHub、GitLab.com)对 单个 Git 对象大小 有硬性限制:

  • 最大单文件 ≤ 100MB

  • 即使你后来删除了该文件,只要它曾出现在历史中的某个 commit 里,推送就会失败

  • 分批提交或多次推送无效——因为 Git 推送的是完整对象历史

我当时想换github,但经过我的查询,这些商业平台,为了节省存储和带宽,强制限制单文件 ≤100MB,且不可绕过。于是我便找到了cnb.tool,因为 cnb.cool 是基于 Gitea 搭建的自托管 Git 服务,而 Gitea 默认对单文件大小限制较宽松(通常默认 200MB 或更高,甚至无限制),不像 Gitee/GitHub 那样严格限制 100MB。于是我便在这个平台使用微信快捷登录,创建仓库(创建仓库需要组织,因为我有域名所以可以直接用和域名相关联组织),之后便重新执行上面的git命令,也是成功更改仓库地址。


用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

楠笙

enfj 主人公

站长

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

欢迎来到楠笙的站点,为您导航全站动态

37 文章数
7 分类数
74 评论数
10标签数

热门文章