git迁移仓库

需求:有个工程原来放在A服务器的git上,现在要迁移到B服务器上,需要保留所有的提交记录
两个服务器都是用的本地安装的gitlab
如果2个服务器包含的member不一样也没关系,都可以导过去

试验过程:
方法1:
进入gitlab界面,选择 new project,然后选择 import project.
在这里插入图片描述
有两种方式导入,一种是 Repo by URL, 需要有相应的权限,需要2个服务器可以通信,直接输入项目旧git服务器上的git地址就可以。
另一种是从旧服务器导出项目,然后用GitLib export ,输入项目名称,然后选择导出的压缩包即可。
如何导出呢?
gitlab导出在这里插入图片描述
在这里插入图片描述
点了导出后,会提示将收到一封邮件,如果没配置邮箱,或者是局域网的根本发布了邮件,这个时候,等导出完毕后,再刷新页面,可以看到下载按钮,直接下载就行。如果项目比较大,不知道什么时候导完,可以过会再刷新
在这里插入图片描述
方法2:
使用命令行:
(1)从原地址克隆一份裸版本库

git clone --bare git://aaa.com/username/project.git

上述命令中的 git://aaa.com/username/project.git 指的是项目的旧git地址

–bare 创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库。
(2)从新git服务器上创建一个空项目
(3)以镜像推送的方式上传代码到 新git 服务器上

cd project.git 
git push --mirror git@bbb.com/username/newproject.git

上述命令中 cd project.git ,是我们再第一步git clone 下来的版本库,是个文件夹
git push --mirror 后面的地址,是新git服务上刚创建的项目的git地址,就是我们要导入的那个地址
主要git push 这个也要求必须具有相应的权限,不然报错

$ git push --mirror git@git.aaa.com:group/project.git
Counting objects: 64, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (36/36), done.
Writing objects: 100% (64/64), 56.90 KiB | 0 bytes/s, done.
Total 64 (delta 12), reused 64 (delta 12)
remote: GitLab:
remote: A default branch (e.g. master) does not yet exist for group/project
remote: Ask a project Owner or Maintainer to create a default branch:
remote:
remote: http://git.bbb.com/group/project/project_members
remote:
To git@git.bbb.com:group/project.git
! [remote rejected] dev -> dev (pre-receive hook declined)
! [remote rejected] master -> master (pre-receive hook declined) .0.190630_release (pre-receive hook declined)
error: failed to push some refs to ‘git@git.bbb.com:group/project.git’

执行完git push 后,就成功上传到新git了,clone下来的裸版本库可以删除了。

再从新git地址clone下项目来,就可以继续使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值