git代码库迁移

代码迁移过程

1.首先确保你在目标服务器上已配置好ssh keys(当然,如果你使用的是http协议,可以忽略这一步)


94367a2e8f9516731af3213dae35a41e.jpg

如何创建和配置ssh keys?
戳这:

7dc7e8bd9c176eb7ea08df740d7f1f16.jpg

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. 一个不少:

55e24527e539e93a7d4fee67172e076c.jpg

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对应的服务器信息,如下:

emp_2292_27.jpeg
  1. 备份已有起源"origin"为"origin_bak"
git remote rename origin origin_bak
  1. 添加新的起源"origin_new",指向git@**git.sdp.nd/xxxx/xxxx.git
git remote add origin_new git@git.sdp.nd/xxxx/xxxx.git
  1. 拉取新建的起源对应的服务器仓库:
git fetch origin_new

假设你使用的是idea,那么在右下角的git分支切换菜单中此时你将看到有如下变化:


7e4e085258d04834f0f16766c920bb89.jpg

ddfeffb3cd37357555fa113be28ec5ec.jpg
  1. 接下去就按平时的操作去checkout就行了.

建议在检出新的远程分支前先将当前已有一些分支删除,否则,你会看到一堆的分支...

附:

其它相关git命令参考:

  • 检出远程分支
git checkout -b *new_develop**origin_new/develop*
  • 删除本地分支
git branch -d *branch_name*
  • 删除本地仓库缓存的但远程早已删除的分支
git fetch -p
  • 删除起源(请确保所有代码都已推送push了,否则,你懂的)
git remote remove *origin_name*
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,541评论 1 26
  • 1. GIT命令 git init在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个re...
    江边一蓑烟阅读 825评论 0 0
  • 最近这一阵 可能说忙也不忙 说不忙其实也挺忙 时间过的好快 怕自己学的不够多 会的不多 挺心酸 挺闷 不太想说话 ...
    爱唱歌的比熊阅读 123评论 0 0
  • 情感就这么激起了,被牵引着,后来不能释怀。我的生活都被你打乱了,可是你却以为我是淡然的。素未相见又谈何想念,矫情罢...
    呜呜呜5552阅读 277评论 0 0
  • 前几天猿题库的笔试题,想了挺久不知道咋做,中午问了慧伟,刚给出了答案。一直以为用动态规划,其实不然。 题目是这样的...
    贰拾贰画生阅读 1,664评论 1 0