rterewq 发表于 2016-10-9 10:24:23

GitLab远程仓库迁移

GitLab上的项目迁移,实质上是更改远程仓库的url。我们在同一个用户下面迁移项目的时候可以更改项目的"project name"来实现项目的迁移。但当用户A的项目迁移到用户B的时候,可以在用户B下面新建一个项目,然后把项目A的文件拷贝过来,但是这种容易丢失commit的log记录。不想丢失commit log记录的话,可以用重置url的方法来实现。
1.首先查看UserA当前项目的remote url:

1
2
3
$ git remote -v
origin   git@gitlab.xxx.net:UserA/ansible-playbook.git (fetch)
origin   git@gitlab.xxx.net:UserA/ansible-playbook.git (push)




2.使用git remote set-url重置为UserB的远程仓库:


1
$ git remote set-url origin git@gitlab.xxx.net:UserB/ansible-playbook.git




3.确认重置成功:


1
2
3
$ git remote -v
origin   git@gitlab.xxx.net:UserB/ansible-playbook.git (fetch)
origin   git@gitlab.xxx.net:UserB/ansible-playbook.git (push)




4.git push强制更新:

确认remote url更新了之后,git push -f参数强制更新一下:

1
git push -fv




TroubleShooting:

在push的时候报错信息:

1
master -> master (pre-receive hook declined)




这是因为gitlab默认的master分支是受保护的,需要取消保护之后才能push:
切到project的主页,打开设置“Protected Branches”,把网页下面master分钟unprotect即可。



页: [1]
查看完整版本: GitLab远程仓库迁移