实操记录
git lfs fetch origin --all
git push --mirror https://cnb.cool/xxx/xxx/xxx
git remote -v
git remote set-url origin https://cnb.cool/xxx/xxx/xxx.git
git push
1. 文档概述
1.1 背景
由于 CODING DevOps 标准版产品已于 2025 年 9 月 1 日正式下线,原托管于 coding.net 的代码仓库无法再进行写操作(Push)。为确保项目持续迭代与数据安全,需将代码仓库完整迁移至腾讯云新一代代码托管平台 CNB (cnb.cool)。
1.2 目标
- 完整性:保留所有分支(Branches)、标签(Tags)、提交历史(Commit History)及 Git LFS 大文件对象。
- 无缝切换:在本地开发环境中更新远程地址,确保后续开发流程不受影响。
- 验证:确认新仓库可正常读写。
1.3 适用范围
- 源平台:CODING.net (已下线/只读)
- 目标平台:腾讯云 CNB (cnb.cool)
- 涉及项目:xxx(示例)
2. 前置准备
在执行迁移前,请确保具备以下条件:
- 目标仓库创建:已在
cnb.cool平台上创建好对应的空仓库(或已准备好接收镜像的仓库地址)。 - 访问凭证:
- 拥有源仓库的读取权限(若尚未完全下线)。
- 拥有目标仓库的写入权限。
- 重要:建议使用 个人访问令牌 (Personal Access Token) 代替账号密码进行 HTTPS 认证,以避免交互式输入密码导致的脚本中断或验证失败。
- Git LFS 支持:若项目包含大文件,确保本地已安装
git-lfs(git lfs install)。
3. 迁移操作步骤
本方案采用 本地镜像推送 (Mirror Push) 方式,适用于保留完整历史的场景。
步骤一:获取最新代码与 LFS 对象
在本地项目根目录下,先拉取所有远程引用和 LFS 对象,确保本地状态是最新的。
# 进入项目目录
cd D:\Project\xxx
# 获取所有分支和标签
git fetch --all --tags
# 获取所有 Git LFS 对象 (关键步骤,防止大文件丢失)
git lfs fetch origin --all
步骤二:执行全量镜像推送
使用 --mirror 参数将本地仓库的所有引用(refs)、分支、标签一次性推送到新的 CNB 仓库地址。
注意:请将
<NEW_REPO_URL>替换为实际的 CNB 仓库地址(例如:https://cnb.cool/xxx/xxx/xxx.git)。
# 执行镜像推送
git push --mirror https://cnb.cool/xxx/xxx/xxxx.git

