git同时连接多个远程仓库

时间:2020-3-30

背景:
笔者想使用git连接两个远程仓库的目的真的很单纯:笔者有两个远程仓库,Gitee和GitHub。在这个如此长的假期中,我无聊的时候就在一个人敲代码,不把两个都刷绿格实在可惜这些资源。
so,把它们刷绿!但是每天分成两次提交今日份代码,我实在感觉有点疲惫。
so,还是在一个本地仓库中,同时连接两个远程仓库吧!

前期准备

  1. 建立多个远程仓库,本文是在Gitee和GitHub上同时建立的远程仓库。
  2. 在GitHub上绑定SSH密钥。若不绑定,则每次push都会要求输入账户和密码。
    上述工作,均可直接在网上搜索到,这里不再赘述。

具体步骤

1、在本地目录新建代码仓库,配置好全局信息

git init
git config --global user.name "username"
git config --global user.email "email" 

2、通过SSH密钥github仓库和gitee仓库

ssh

git remote add github git@github.com:zhoukuansky/test.git   
git remote add gitee git@gitee.com:zhoukuansky/test.git   

使用 git remote -v 命令查看,表明已经关联成功远程仓库。
test2

3、更新仓库测试,推送测试出现错误

更新本地仓库,这里先使用gitee远程仓库更新本地信息,其次是github

git pull gitee master
git pull github master

test3
可以看到,这里先使用的gitee仓库拉取更新成功,但是后面使用的github拉取更新显示失败。由于这是两个不同的仓库,无论谁后被pull更新,都会失败。
失败原因:refusing to merge unrelated histories(拒绝合并两段不相关的历史)
由此,测试push也必然失败。

4、解决方法

经过简单的思考,笔者采用以下两种解决办法:
方法一:强制融合两段不相干的分支历史:

git pull github master --allow-unrelated-histories

test4
合并成功。
更改 readme.md 测试push到两个远程仓库:

git commit -am "test"
git push gitee master
git push github master

test5
显示成功!

方法二:强制推送到github库,将之覆盖:(多人合作时,极其不建议使用)
这里由于是新建的test项目,担任操作,不怕丢失文件, 所以可以采用这种方法。

git push github master --force

test6
成功!
多个仓库的操作方法类似。

5、小小优化

当本地仓库关联上多个远程,每次推送的时候都需要两次push。
所以,使用以下代码同时在origin上关联两个远程:

git remote add origin git@github.com:zhoukuansky/test.git      

然后,打开代码仓库的本地版本库中的config文件,即/.git/config(.git文件一般是隐藏的,需要打开隐藏文件查看),修改如下:
test7

保存好后,更改 readme.md 测试push到两个远程仓库:

git commit -am "test2"
git push -u origin master

test8
Over!

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是的,可以将一个本地 Git 仓库关联多个远程仓库。你可以按照以下步骤进行操作: 1. 首先,在本地创建一个空的 Git 仓库,或者进入已有的 Git 仓库目录。 2. 打开终端或命令行界面,使用 `git remote add` 命令来分别关联多个远程仓库。例如,如果你要关联的第一个远程仓库的名称为 "origin",远程仓库的 URL 为 "https://github.com/your-username/your-repo.git",则可以运行以下命令: ``` git remote add origin https://github.com/your-username/your-repo.git ``` 如果你要关联的第二个远程仓库的名称为 "second",远程仓库的 URL 为 "https://github.com/your-username/second-repo.git",则可以运行以下命令: ``` git remote add second https://github.com/your-username/second-repo.git ``` 这里的 "origin" 和 "second" 是远程仓库的名称,你可以根据需要自定义。 3. 确认关联成功后,你可以使用 `git remote -v` 命令来查看已关联远程仓库列表。例如,运行以下命令: ``` git remote -v ``` 你将看到类似以下输出: ``` origin https://github.com/your-username/your-repo.git (fetch) origin https://github.com/your-username/your-repo.git (push) second https://github.com/your-username/second-repo.git (fetch) second https://github.com/your-username/second-repo.git (push) ``` 这表示你已成功关联了两个远程仓库。 4. 当你需要将代码推送到特定的远程仓库时,可以使用 `git push` 命令加上远程仓库的名称。例如,要将代码推送到 "origin" 远程仓库的 master 分支,可以运行以下命令: ``` git push origin master ``` 要将代码推送到 "second" 远程仓库的 develop 分支,可以运行以下命令: ``` git push second develop ``` 请注意,上述命令中的 "your-username" 应替换为你的 GitHub 用户名。你可以根据需要设置不同的远程仓库名称和分支名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值