为什么会有这篇文章
由于公司开始没有给到 git 仓库地址,本人就用在自己的 git 上创建了一个私库来临时储存代码,随着项目的开发,创建了多个分支,然后最近要迁移至公司的 gitlab 仓库地址上,由于有多个分支,显然是不能简单粗暴的直接上传本地代码,我们需要把所有的分支以及标签代码全部迁移,于是便有了今天的文章。
需要的准备
迁移仓库需要旧仓库仓库地址(old.git),新的仓库地址(new.git)。
在新仓库(new.git) 新建好分支和标签,这里需要注意的是要和旧仓库(old.git) 上的分支以及标签一致,不然会导致迁移失败;
2. 在电脑中新建一个空文件夹,克隆旧仓库项目到该文件夹,然后执行 git bash 窗口;
在窗口中输入指令:
git clone --bare old.git
- 在指令执行完成后会在你新建的文件中生成一个文件夹,以 xxx.git 命名的文件夹;
输入指令:(该指令用于切换到本地 xxx.git 的文件夹中)
cd xxx.git
- 执行完后再次输入指令:
git remote set-url --push origin new.git
-
可能会出现的报错,如图:
原因:权限问题,Develop 角色默认下没有远程访问 master 的权限
解决方案:在项目的 Setting 中的 Protected branches 可以设置哪些分支是被保护的,默认情况下 master 分支是处于被保护状态下的,develop 角色的人是无法提交到 master 分支的,在下面的Developers can push 打上钩就可以了。
最后,如有疑问欢迎大家提出来,谢谢。