git代码库迁移

代码迁移过程

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


git代码库迁移_第1张图片
94367a2e8f9516731af3213dae35a41e.jpg

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

git代码库迁移_第2张图片
7dc7e8bd9c176eb7ea08df740d7f1f16.jpg

2.从源服务器克隆裸版本库到本机

git clone --bare [email protected]/xxxx/xxxx.git

此时,会从服务端将版本库克隆到本地当前目录,请确保当前目录为空
,否则,文件混在一起,你懂的.

3.进入到本机 xxxx.git目录:

cd xxxx.git

4.镜像推送代码到目标服务器:

git push --mirror [email protected]/xxxx/xxxx.git

经过以上几步,你的git仓库就完整迁移到新的目标服务器上拉,包括所有commit,branch,tag. 一个不少:

git代码库迁移_第3张图片
55e24527e539e93a7d4fee67172e076c.jpg

WIKI迁移过程:

同上,只要把项目git地址后面加上".wiki"即可.如:

[email protected]:edu-cloud-android/edu-people-forum.git

对应wiki:

[email protected]: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 [email protected]/xxxx/xxxx.git
  1. 拉取新建的起源对应的服务器仓库:
git fetch origin_new

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


git代码库迁移_第4张图片
7e4e085258d04834f0f16766c920bb89.jpg

git代码库迁移_第5张图片
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代码库迁移)