迁移带有 git lfs 功能的 github 仓库

总结:

create git 仓库,不带任何附件;

勾选 allow lfs.

bash 复制代码
git clone --mirror https://github.com/你的用户名/你的仓库.git
cd 你的仓库.git
git lfs fetch --all
git remote set-url origin http://bitbucket.org/你的工作区/你的新仓库.git
git push --mirror
git lfs push --all origin

注意:

1. 服务器上的仓库设置 allow lfs 勾选

否则会出现 类似这样的错误:

batch response: Git LFS is disabled0 B | 0 B/s

batch response: Git LFS is disabled

Uploading LFS objects: 0% (0/1), 0 B | 0 B/s, done.

2.注意使用的网络协议

使用 http协议,ssh 不与 lfs 配合。

git remote set-url origin http://bitbucket.org/你的工作区/你的新仓库.git

迁移一个带有 Git LFS 的仓库,核心挑战是 Bitbucket 自带的导入工具 (Import Tool) 不会导入 LFS 文件对象 -7。因此,手动镜像克隆并推送(Manual Mirror Push)是最可靠、也是官方推荐的方法 -4

详细操作步骤

在终端中逐条执行以下命令。

1. 镜像克隆 GitHub 仓库

这一步会从 GitHub 把所有东西完整地"复制"到你电脑上,包括所有的分支和标签。

bash 复制代码
git clone --mirror https://github.com/你的用户名/你的仓库.git
cd 你的仓库.git

--mirror 参数会创建一个裸仓库(bare repository),这是完整迁移的最佳起点-4-5

2. 拉取所有 LFS 文件

这是最关键的一步。因为普通克隆默认只下载当前版本的文件指针,我们需要显式地把所有 LFS 文件(Git 大文件存储对象)的历史版本也都拉到本地来-2-7

bash 复制代码
git lfs fetch --all

这个命令执行完后,你的本地才算真正拥有了 GitHub 上的所有大文件实体。

3. 准备 Bitbucket 仓库
  • 登录 Bitbucket,创建一个空的新仓库。

  • 不要勾选"创建 README"、".gitignore"或"许可证"等初始化选项,否则会因产生初始提交而导致推送冲突。

  • 创建完成后,复制它提供的 HTTPS 或 SSH 地址

4. 推送至 Bitbucket

现在,我们把本地完整的环境"映射"到 Bitbucket 上。

首先,修改远程仓库地址:

bash 复制代码
git remote set-url origin https://bitbucket.org/你的工作区/你的新仓库.git

然后,执行推送。这是另一个核心命令,它会将所有引用(分支、标签)和 LFS 对象都推送到 Bitbucket。

bash 复制代码
git push --mirror
git lfs push --all origin

按照这个顺序执行,可以确保 Git 元数据和 LFS 大文件都能稳定上传-2

常见问题与注意事项

  • 历史中的大文件 :如果你早期的提交里曾有大文件(此时还未使用 LFS),直接迁移可能会遇到大小限制。建议在迁移前先用命令 git lfs migrate import --include="*.zip,*.psd" --everything 将历史中的特定文件类型也转交给 LFS 管理-3-9

  • 团队协作中断:迁移操作会重写仓库历史吗?

    • 上面演示的标准流程(clone --mirror + push --all)是无损的。它只是把 GitHub 上的数据完整地复制到 Bitbucket,不会改变提交的 SHA-1 值,因此对团队成员来说是透明的。

    • 如果你执行了上一条提到的 migrate 命令来重写历史,那所有同事都需要重新克隆仓库,适合在"搬迁窗口期"操作-9

  • 验证迁移结果 :推送完成后,可以在 Bitbucket 网页端查看源代码和提交记录。你也可以重新 Clone 一份到新文件夹,运行 git lfs ls-files 查看 LFS 文件是否完整-4

  • 保留元数据 :Issues、Pull Requests、Wiki 等数据无法通过 Git 命令迁移。如果这些也需要保留,只能借助 GitHub 和 Bitbucket 的官方导入/导出工具,或者考虑使用第三方迁移服务-4-6

相关推荐
SUNNY_SHUN几秒前
把 Whisper、Moonshine、SenseVoice 统统装进手机:sherpa-onnx 离线语音部署框架,GitHub 10.9K Star
人工智能·智能手机·whisper·github
DogDaoDao18 分钟前
【GitHub】Hermes Agent 深度技术分析
程序员·大模型·github·ai编程·ai agent·智能体·hermers agent
Shawn Dev42 分钟前
团队协作中的 Git Tag 最佳实践:从入门到精通
大数据·git·elasticsearch
沉默王二1 小时前
阿里云 OCR+LiteParse,让扫描件 PDF 也能被 RAG 检索到!
github·agent·ai编程
X_szxj2 小时前
Windows安装liboqs库
windows·github
AdCj32 小时前
GitHub 日榜速递 (2026-06-08):AI 基础设施正在“下沉“(技术分析版)
人工智能·github·agent
CJH(本人账号)2 小时前
AI Agent 安全危机:当你的“智能助手“变成攻击者的“远程武器“
网络·人工智能·安全·ai·开源·github
独隅2 小时前
Git/GitHub/GitLab/Gitee 核心对比指南
git·gitlab·github
用户074740781652 小时前
web.py:一个简单到极致的 Python Web 框架
github
用户813609341492 小时前
pre-commit:一套框架管好所有 Git 提交检查
github