其实直接上传本地的代码到新的仓库,也能实现保存最新代码的效果;新建各种分支也能和原仓库一致。
关键是要保留代码的提交记录,以便后续的整理和回滚。
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、选择下载的原仓库数据导入
后续的步骤都一样,就不重复写了