其实直接上传本地的代码到新的仓库,也能实现保存最新代码的效果;新建各种分支也能和原仓库一致。

关键是要保留代码的提交记录,以便后续的整理和回滚。

GitHub 自带了一个仓库迁徙功能,原理是复制一个仓库,然后用户可以手动清空原仓库

迁徙目标:

  • 保留所有代码
  • 保留所有分支
  • 保留所有分支的提交记录
  • 事前准备:

  • 更新远程仓库所有分支的代码到最新版本
  • 如果是私密仓库,且要交由另一个不是仓库协作成员的同事来负责迁徙,要将他添加到当前仓库协作成员列表,详情可查看我的 另一篇文章
  • 迁徙GitHub仓库:

    1、新建 github 仓库

    新建 github 仓库,选择“公开”或者“私密”类型

    2、导入原仓库代码

    点击底部的 “Import code” 按钮

    会到这个页面

    在新标签页打开旧仓库页面,复制地址栏的 URL ( 注意不是 Clone or download 按钮的那个地址 ),粘贴到上面页面的输入框,点击“Begin import”,会开始自动执行迁徙(或者说复制)操作:

    3、弹窗输入

    期间,根据原来仓库的安全设置,可能会弹窗要求输入 github 的账号密码:

    4、检查新仓库

    远程仓库复制完毕,可以直接点击红框处跳转新仓库。

    可以随意切换分支,查看 commit 历史。

    记得点击 ”Star“,免得之后找不到它。

    5、重新添加仓库的协作人员

    6、本地仓库更新远程仓库地址

    如果使用 Sourcetree 等客户端,可以在设置里修改;如果使用 GitBash 命令行,可以输入:

    git remote set-url origin 仓库地址
    复制代码

    完成后,所有分支都会自动对接上远程分支,可以随意 checkout

    7、测试是否已切换

    输入 git remote -v 查看远程仓库地址

    或者本地代码随意修改一下,push 到远程仓库查看效果

    8、清空原仓库

    新仓库检测无误后,可以清空原仓库

    迁徙GitLab仓库:

    1、导出原仓库数据

    Settings -> General -> Export project

    然后等待 GitLab 发送项目下载链接到邮箱;或者过一会刷新页面,在 “Export project” 按钮旁边会多出一个下载文件按钮

    2、新建仓库,并选择导入项目

    New project -> Import project -> Gitlab export

    这里也可以从 github 导入项目,只需 github 授权

    3、选择下载的原仓库数据导入

    后续的步骤都一样,就不重复写了

    分类:
    阅读
    标签: