首页
学习
活动
专区
工具
TVP
发布

Git同时上传代码到多个远程仓库

前提:当前已有项目和GitHub或者Gitee同步,可以是从远程仓库clone下来的,或者是本地项目已经上传到远程仓库的。

以下远程仓库地址使用的是ssh地址,远程仓库连接使用的是ssh key通信。可以参考之前的文章查看如何设置ssh key的公钥连接,git同步远程仓库代码命令。

当前远程仓库使用的是Github和Gitee。

另外需要注意的是,远程仓库的连接方式我使用的是ssh key,并且两个仓库的公钥完全相同。git config中的email和name也使用的是local配置。本文不涉及不同仓库的不同ssh key配置。

1. 查看当前的remote信息

#查看已经设置的远程仓库别名列表git remote#查看别名对应的远程仓库地址git remote -v#查看别名更详细信息git remote show origin

2. 设置Github和Gitee两个远程仓库

#删除原来默认的仓库git remote rm origin#添加远程仓库git remote add

3.同步多个远程仓库

因为最开始代码是在和Github关联的本地仓库基础上操作的,所以推送到Github成功了。但由于代码之前没有和Gitee上建立过任何联系,并且Gitee上的仓库代码和本地有一些差异,所以git认为这是两个毫无关联的仓库(事实也是如此),所以在git push gitee master时报错了。先后是两个错误:(1). 本地仓库和远程仓库提交历史毫无关联,这需要merge为同一个历史;(2). merge历史时出现文件冲突,所以需要解决冲突(本文不详述解决冲突的各种方法),然后提交后进行全部远程仓库的推送。

在解决了错误之后,我又修改了本地的代码,实验下推送到github和gitee两个远程仓库,都全部成功。

再重申一个点:远程仓库的连接方式我使用的是ssh key,并且两个仓库的公钥完全相同。git config中的email和name也使用的是local配置。本文不涉及不同仓库的不同ssh key配置。

#拉取远程仓库最新代码git pull # 推送到远程仓库git push

3.1. 推送到 github远程仓库

3.2 推送(git push)到Gitee报错,解决方式

:history错误。本地仓库从github来,所以本地仓库和远程仓库gitee毫无关联,需要merge成一个。

# 在git pull时加上参数 --allow-unrelated-histories是把两段不相干的分支进行强行合并git pull gitee master --allow-unrelated-histories

:解决冲突

:再次重新推送到gitee和github

4. 重新修改代码测试下推送到两个远程仓库。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200205A02YBW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券