由于一些不可抗因素,原本在gitlab仓库存储的代码,需要在Gitee上也部署一套,通常简单的修改、协同开发时,成员少的情况下,可以通过手动复制修改内容、覆盖文件等方式解决。但是,一旦修改的文件内容较多、协同开发的人员过多,合并修改,将是一件非常头痛的事情,因此,本文提供了一种便捷的处理方式,解决上述问题。
a、打开命令行控制台,执行命令:cd ~/.ssh
b、执行生成公钥秘钥的命令:ssh-keygen -o
c、查看新生成的公钥信息,并将其添加到Gitee公钥配置中
执行命令:cat ~/.ssh/gitee/id_rsa_gitee_dmt.pub
git remote add gitlab git@gitlab.hzdingmao.com:industry/assgroup/ass-front.git
git remote add gitee git@gitee.com:htw123/ass-front.git
git pull gitlab test:test
git push gitee test:test
如果提示如下错误,则可能已有其他账号Gitee公钥配置,需要在.ssh目录下添加config配置文件(如已存在则在其中添加内容即可):
config配置文件新增配置如下:
#个人gitee的配置
Host dmt_gitee.com
HostName gitee.com
IdentityFile ~/.ssh/gitee/id_rsa_gitee_dmt
User git
git remote add gitee dmt_gitee.com:htw123/ass-front.git
观察发现,如果同一个代码托管平台有多个账号的情况下,config文件配置的 Host 是不能一样的,而对应账号下的代码仓库,其pull/push操作秘密认证依赖 Host 下 IdentityFile 对应秘钥,所以,代码仓库地址的 git@gitee.com 地址应该为 Host 对应地址,如上述配置:dmt_gitee.com 。
重复执行第5步,发现推送正常:
以上1-5步完成后,去Gitee代码仓库test分支检查代码是否同步完成,继续后续在Gitee上的操作。
说明:
查了很多资料,上述出现的问题都没找到处理的解决方案,最终在gitee官方文档中找到了关键解决方案,即第6步,希望能给有同样困扰的同学提供一些思路。
参考:
Git 配置多个 SSH Key