代码迁移过程
1.首先确保你在目标服务器上已配置好ssh keys(当然,如果你使用的是http协议,可以忽略这一步)
如何创建和配置ssh keys?
戳这:
2.从源服务器克隆裸版本库到本机
git clone --bare git@gitlab.huayu.nd/xxxx/xxxx.git
此时,会从服务端将版本库克隆到本地当前目录,请确保当前目录为空
,否则,文件混在一起,你懂的.
3.进入到本机 xxxx.git目录:
cd xxxx.git
4.镜像推送代码到目标服务器:
git push --mirror git@git.sdp.nd/xxxx/xxxx.git
经过以上几步,你的git仓库就完整迁移到新的目标服务器上拉,包括所有commit,branch,tag. 一个不少:
WIKI迁移过程:
同上,只要把项目git地址后面加上".wiki"即可.如:
git@git.sdp.nd:edu-cloud-android/edu-people-forum.git
对应wiki:
git@git.sdp.nd:edu-cloud-android/edu-people-forum.wiki.git
本地代码指向:
方法一
直接重新clone一份.是个程序员都会了,不细说了.方法二
将本地已有代码库做重定向:
假设当前本地已有起源名称为"origin" --实际上默认的名字都是这个,你可以通过remote命令查看当前git对应的服务器信息,如下:
- 备份已有起源"origin"为"origin_bak"
git remote rename origin origin_bak
- 添加新的起源"origin_new",指向
git@**git.sdp.nd/xxxx/xxxx.git
git remote add origin_new git@git.sdp.nd/xxxx/xxxx.git
- 拉取新建的起源对应的服务器仓库:
git fetch origin_new
假设你使用的是idea,那么在右下角的git分支切换菜单中此时你将看到有如下变化:
- 接下去就按平时的操作去checkout就行了.
建议在检出新的远程分支前先将当前已有一些分支删除,否则,你会看到一堆的分支...
附:
其它相关git命令参考:
- 检出远程分支
git checkout -b *new_develop**origin_new/develop*
- 删除本地分支
git branch -d *branch_name*
- 删除本地仓库缓存的但远程早已删除的分支
git fetch -p
- 删除起源(请确保所有代码都已推送push了,否则,你懂的)
git remote remove *origin_name*