likes
comments
collection
share

最新的原生 GitHub、GitLab 仓库迁徙方法

作者站长头像
站长
· 阅读数 1

为何要用迁徙功能:

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

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

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

迁徙目标:

  • 保留所有代码
  • 保留所有分支
  • 保留所有分支的提交记录

事前准备:

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

迁徙GitHub仓库:

1、新建 github 仓库

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

2、导入原仓库代码

点击底部的 “Import code” 按钮

最新的原生 GitHub、GitLab 仓库迁徙方法

会到这个页面

最新的原生 GitHub、GitLab 仓库迁徙方法

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

最新的原生 GitHub、GitLab 仓库迁徙方法

3、弹窗输入

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

最新的原生 GitHub、GitLab 仓库迁徙方法

4、检查新仓库

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

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

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

最新的原生 GitHub、GitLab 仓库迁徙方法

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” 按钮旁边会多出一个下载文件按钮

最新的原生 GitHub、GitLab 仓库迁徙方法

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

New project -> Import project -> Gitlab export

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

最新的原生 GitHub、GitLab 仓库迁徙方法

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

最新的原生 GitHub、GitLab 仓库迁徙方法

4、后续

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