Git仓库代码迁移
前言
**本文建立在已有
git
仓库地址存在的情况下,将当前
gitLab
仓库的代码迁移到另一个
gitLab
仓库中**
或有其他更加简洁的方案,由于时间仓促,并未过多研究,还望大佬指点!!!
以下操作如有不当,望指正!!!
步骤
- 新建一个文件夹,将当前需要迁移的
gitLab
仓库中的代码拉取到本地
- 这么做的目的是,为了防止出错,防止操作不当,将代码误删
- 当然了仓库里目前还有代码,其实也无所谓,但有备无患,万一那边仓库的代码被干了,就G了
git clone https://xxxxxxxxxxxx.git
- 切换到你当前拥有的完整功能的代码分支
- 由于需求不同,可以根据当前需求进行操作(这里我只需要保留我一份完整代码即可,所以只做了这一步,如有需要还请自行查阅【望大佬评论区告知高操作】)
git checkout xxxx(分支名)
- 将文件夹中的
.git
文件删除
- 注意这里的
.git
文件是你当前仓库的所有信息,当删除之后,将同时删除你的所有git
记录和相关操作(这里说的可能不太明确,我也不知道咋解释,反正就是删了就没有git
了!) - 由于 ‘.’ 开头的文件是隐藏文件,需要在文件窗口进行设置————查看=>隐藏的项目(win10操作系统在最上方有四个操作栏按钮(文件、主页、共享、查看),隐藏的项目勾选项在靠右边,仔细找一下,不知道的自行百度一下“win10查看隐藏文件”)
- 初始化
git
- 就是重新弄一个你的全新的
.git
文件,里面需要重新设置一些东西,下面详细说明
git init
- 将你的信息写一下,就是
git
提交的信息(初始你的信息)
git config --global user.email xxxxx(邮箱信息)git config --global user.name xxxxx(用于显示的名字)
- 查看一下当前添加的信息是否成功
git config --list
- 执行完后,如果有以下两行就表示成功了
...
user.email=xxxxxxx(你刚刚输入的邮箱信息)
user.name=xxxx(你刚刚输入的用于显示的名字)
...
- 绑定准备上传代码的远程仓库(你即将迁移到的仓库)
- 这里就是将你当前的代码和新的
gitLab(git仓库【gitee、gitHub】)
绑定 - 注意
http://xxxxxxxxxxxx
是你的新的仓库地址,更重要的是注意一定要加上后面的.git
后缀,不然会报错
git remote add origin http://xxxxxxxxxxxx.git
- 可以查看一下当前绑定的地址,看看有没有绑错
git remote -v
这里往下在网上有其他的操作方法,但是我目前没有使用其他方法,因为可以实现
当然了我这么干后面肯定会有些问题暴露,但是暂时这么干没毛病,后面再解决嘛(因为也不是什么大问题)
- 修改当前分支的名字
- 由于之前将
.git
文件删除过所以,无论之前是什么名字,现在只有一个叫master
的分支 - 当然还有说是需要新建一个分支,可以合并一下
master
分支,再进行上传,但我没有这样操作,如有需要,请自行选择
git branch -m 旧分支名(master) 新分支名(这个就随便了,像什么 dev、prod、bug、xxx)
- 接下来就是提交代码到暂存区和并进行
commit
操作了
gitadd.git commit -m"first commit(这里就是你提交时候的说明,爱写啥你懂就行)"
- 正式将本地仓库区的代码提交到远程分支,同时本地分支与远程分支建立连接
- 反正就是直接将本地仓库上传到了远程仓库了,就这么干就完事了
git push --set-upstream origin xxxx(名字:取个和刚刚修改的分支名一样的名字就行)
- 可以将远程分支的代码拉过来一下,但是好像有点问题,就是没有建立链接还是啥的
- 无伤大雅,反正代码都迁移了,问题不大,有需要的时候再去绑定还是啥的吧…
git pull
至此就完结啦,反正上面可能有些操作不合理,如果有更好的办法,就按照自己的办法来就行
补充(发现有更简单的办法,,,,)适用于远程主分支没有合并权限的情况
- 通过clone命令将需要迁移的仓库镜像下载到本地
- 例如: git clone http://gitee.com/test.git
git clone --mirror 仓库地址
- 将仓库中的旧的远端地址更改为新仓库地址
- 例如: git remote set-url --push origin http://gitee.com/demo.git
git remote set-url --push origin 新代码仓库地址
- 将修改后的Git镜像仓库推送到新的仓库
git push --mirror
至此,旧仓库已经完整推送到了新的代码仓库,commit记录和代码分支完整
这个是我摘抄的,略作修改了。原文地址是:原文地址
以上解决远程主分支有合并权限的情况(只上传当前所在分支的)
如果远程分支有权限,按照如下方式可进行迁移当前所在分支的全部记录
- 通过clone命令将需要迁移的仓库镜像下载到本地
- 例如: git clone http://gitee.com/test.git
git clone --mirror 仓库地址
- 将仓库中的旧的远端地址更改为新仓库地址
- 例如: git remote set-url --push origin http://gitee.com/demo.git
git remote set-url --push origin 新代码仓库地址
- 正式将本地仓库区的代码提交到远程分支,同时本地分支与远程分支建立连接
- 反正就是直接将本地仓库上传到了远程仓库了,就这么干就完事了
- 例如: git push --set-upstream origin master
git push --set-upstream origin xxxx(名字:取个和刚刚修改的分支名一样的名字就行)
版权归原作者 Jinyu_Lin 所有, 如有侵权,请联系我们删除。