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

如何将Git项目从Bitbucket迁移至GitHub?

嘿,我来帮你搞定这个跨平台迁移的问题!你遇到的情况大概率是修改远程URL后,本地仓库的跟踪分支没同步,或者漏了推送现有代码的步骤。下面给你两种靠谱的迁移方案,尤其是第一种带完整历史的,特别适合开源项目——毕竟提交历史能帮后续贡献者理解项目演进~

方案一:保留完整提交历史的迁移(强烈推荐)

这是开源项目迁移的首选,能完整保留所有分支、标签和提交记录:

  1. 检查并添加GitHub远程仓库

    • 先查看当前本地仓库的远程配置,确认原有Bitbucket地址:
      git remote -v
      
    • 添加GitHub作为新的远程仓库(别直接覆盖原有地址,万一出错有退路):
      git remote add github <你的GitHub仓库URL>
      
    • 推送所有分支到GitHub:
      git push github --all
      
    • 推送所有标签到GitHub(标签通常对应版本发布,必须保留):
      git push github --tags
      
  2. 调整默认远程与分支跟踪

    • 如果想把GitHub设为默认远程,可以修改origin的地址:
      git remote set-url origin <你的GitHub仓库URL>
      
    • 检查本地分支的跟踪状态,确保它们关联到GitHub的对应分支:
      git branch -vv
      
    • 若某个分支(比如main)没跟踪GitHub分支,手动设置关联:
      git branch -u origin/main
      
方案二:快速迁移(不保留历史,仅适合小型项目)

如果你的项目不需要提交历史,只想把当前代码快速推到GitHub:

  • 确保本地代码是最新状态,然后初始化仓库(如果还没初始化):
    git init
    
  • 添加GitHub远程地址:
    git remote add origin <你的GitHub仓库URL>
    
  • 提交并推送当前代码:
    git add .
    git commit -m "Initial commit from Bitbucket migration"
    git push -u origin main
    
解决“未检测到任何变更”的问题

你提到修改远程URL后没检测到变更,大概率是这两个原因:

  • 本地仓库本来就没有未提交的修改:运行git status,如果显示working tree clean,说明当前代码和本地分支的最新提交一致,你需要做的是推送现有分支到GitHub,而不是等着检测新变更。
  • 本地分支仍在跟踪Bitbucket的远程分支:这时候git push默认还是往Bitbucket推,你可以指定推送目标,比如:
    git push github main
    
额外小贴士
  • 迁移完成后,记得在GitHub仓库里完善README、LICENSE文件,设置分支保护规则——这些是开源项目的标配。
  • 如果需要迁移Bitbucket上的Pull Requests、Issues,你可以在创建GitHub仓库时选择「导入外部仓库」,GitHub的官方工具会帮你自动迁移这些内容,比手动搬运省心多了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:03:25