<>背景
需求:将项目需要整体迁移至阿里云的codeup
<>现状
所有的项目都在自搭的gitlab服务器
<>流程
* 备份当前服务器中的项目代码(以免出错)
* 在新的gitlab或codeup或gitee中创建新的代码库
* 修改当前服务器中项目的远程仓库地址
* 将项目代码推送至远程仓库
<>1. 备份
比如项目名称为server,执行命令将项目进行打包备份
zip server.zip server/*
<>2. 创建新的代码仓库
此步骤前往对应的git仓库建立即可
<>3. 生成及添加git秘钥
先看是否已存在
cat ~/.ssh/id_rsa
不存在则执行该命令进行生成,
ssh-keygen -t rsa -b 4096 -C "邮箱地址"
若存在可在生成时自己定义生成的位置,以防被覆盖,在:处自定义位置及名称
Generating public/private rsa key pair. Enter file in which to save the key (
~/.ssh/id_rsa):
一路回车即可,默认位置在 ~/.ssh/ 下,将对应文件夹下的公钥文件上传至对应的git中
<>4. 服务器中的秘钥冲突
在服务器拉取代码时显示git秘钥冲突,可在.ssh文件夹中生成config文件,具体配置如下
# 账号A Host codeup_1 HostName codeup.aliyun.com IdentityFile ~/.ssh/codeup_1
PreferredAuthentications publickey User username1
* HostName:填写托管平台服务地址;
* Host:填写别名,方便命令行使用;
* IdentityFile:填写证书(秘钥)位置;
配置完成后使用该命令查看配置是否生效
ssh -t git@codeup_1
拉取代码时使用对应的host即可使用对应的秘钥,如:
git clone git@codeup_1:XXX.git
<>5. 修改项目远程地址
* 清除known_hosts对应的之前的地址,known_hosts作用为ssh会把每个你访问过计算机的公钥(publickey)都记录在known
hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS
Hijack之类的攻击。所以需要清楚之前记录的信息,该文件在~/.ssh文件夹中,建议清楚前先做备份
* 进入项目中
2.1 查看当前项目远程仓库git remote -v 2.2 清除当前项目的远程仓库git remote remove origin 2.3
添加新的git远程仓库地址git remote add origin 地址
<>6. 将项目推送至远程仓库中
git push -u origin --all