You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含LFS的Bitbucket仓库向GitHub迁移(保留分支标签历史)分步方案

Bitbucket 到 GitHub 完整迁移方案(含LFS问题解决,保留全分支/标签/历史)

分步操作流程

1. 克隆Bitbucket仓库镜像

先创建原仓库的完整镜像克隆,确保所有分支、标签、提交历史都被复制:

git clone --mirror <你的Bitbucket仓库URL>
cd <仓库名>.git

2. 解决Git LFS相关的预提交钩子问题

针对迁移时被预提交钩子阻止的情况,按以下步骤处理:

  • 确认仓库是否包含LFS文件:
    git lfs ls-files
    
    有输出则说明存在LFS追踪文件。
  • 临时禁用本地Git钩子(迁移场景无需触发钩子校验):
    • Linux/macOS:
      git config core.hooksPath /dev/null
      
    • Windows:
      git config core.hooksPath NUL
      
  • 确保本地已安装Git LFS并完成初始化:
    git lfs install
    

3. 添加GitHub远程仓库地址

将GitHub仓库设为新的推送目标:

git remote add github <你的GitHub仓库URL>

验证远程源配置:

git remote -v

输出应包含bitbucket(原地址)和github(新地址)两个远程条目。

4. 推送所有内容到GitHub

  • 先推送所有分支、标签和提交历史:
    git push github --mirror
    
  • 若存在LFS文件,单独推送LFS对象:
    git lfs push github --all
    

5. 验证迁移结果

  • 登录GitHub查看目标仓库,确认所有分支、标签都已同步
  • 随机检查多个提交记录,确保历史完整无缺失
  • 测试LFS文件的下载和访问,确认可正常使用

注意事项

  • 迁移前确保GitHub目标仓库为空(不要提前初始化README、LICENSE等文件),否则会触发推送冲突
  • 迁移期间禁止向原Bitbucket仓库提交新内容,若有新提交需重新克隆镜像后再次推送
  • 私有仓库迁移后,检查GitHub仓库的权限设置,确保团队成员访问权限正确
  • 迁移完成后建议将原Bitbucket仓库设置为只读,避免后续误操作

内容的提问来源于stack exchange,提问作者JayDee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:01:16