最近在写一个开源的论坛系统,在发布代码时选择了github和coding这两个平台,我手懒,不想敲两次git push了,所以说突然有了一个很奇怪的需求:用一条git push同时push到两个远端代码库。当然说写个sh脚本当然肯定能解决,但是我对那个不太熟悉,所以说搜索了一下相关资料,找到一篇问答讨论了这个问题

以下是解决方法,转载自终端下如何配置 git 使其可以同时 push 到两个远程仓库?

我用过两种方法,最早的时候是设定多个 remote,然后写一个 alias,比如:

$ git config alias.pushall "!git push origin && git push dev"

后来在某一个版本(忘了具体的版本号)升级之后,Git 多了一项设置,使得你可以为一个 remote 设置多个 pushurl。比如说你问题里的例子,我可以不要 remote "dev",只留下 remote "origin",然后加一句:

git remote set-url --add --push origin git@gitlab.com:root/XXX.git

在这之后,你的 remote "origin" 就变成类似如下的结构:

[remote "origin"]
        url = git@github.com:SegmentFault/XXX.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        pushurl = git@github.com:SegmentFault/XXX.git
        pushurl = git@gitlab.com:root/XXX.git

如此一来,我可以直接 git push origin 就可以推向两个 repos 了。

这两种方法其实各有各的适用场景,自己取舍吧。

请注意,我亲测后发现,这篇原文中提到的加另外一个代码库的命令有错误,set-url前面不应该有"--"
原文中是

git remote --set-url --add --push origin git@gitlab.com:root/XXX.git 

这个是错的,我已经在上面引用中改正了

我该如何使用这个功能?

看完之后我试了一下,这个应该这么用

  1. 先把你要第一个push的代码用git remote add这种通常的办法添加好,这里将这个远端库命名为bucket

    git remote add bucket git@git.coding.net:xxxxx
  2. 第二步,用set-url这个参数将第二个代码库添加上去

    git remote set-url --add --push bucket git@gitlab.com:root/XXX.git

    然后用git remote -v 看一下已添加的代码库,会看到类似下文的结果

    bucket  git@git.coding.net:xxxxx (fetch)
    bucket  git@git.coding.net:xxxxx (push)
    bucket  git@gitlab.com:root/XXX.git (push)

这样就可以了,然后试一下push代码到bucket,就可以观察到git按照顺序自动把东西push到了远端

配置git同时push到两个远端库的简单方法的更多相关文章

  1. maven 配置mirror后,本地库与远端库冲突

    settings.xml中主要包括以下元素: localRepository interavtiveMode offline pluginGroups proxies servers mirrors ...

  2. 使用git将项目上传到github(最简单方法)

    首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://gi ...

  3. 【转】使用git将项目上传到github(最简单方法)

    原文地址:http://www.cnblogs.com/cxk1995/p/5800196.html 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ ...

  4. idea中如何配置git以及在idea中初始化git,并push到码云

    一.给idea配置git 打开IDEA,按照路径  Fie-->Settings --> Tools -->Terminal 找到后设置右边的Shell path(自己安装的Git路 ...

  5. Idea中Git的使用和两种类型的冲突解决

    一.Git冲突解决 在idea开发工具中使用Git时,主要用到的快捷按钮如下五个:   这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThin ...

  6. Android Studio配置Git及Git文件状态说明

    Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/downlo ...

  7. 配置Git Extension免密码发布代码到CSDN

    配置Git Extension免密码发布代码到CSDN [本文默认大家安装了Git以及Git Extension] 今天花费了许多的时间处理这个问题,希望能给大家节约时间.闲话少说:使用ssh验证来p ...

  8. 自定义 Git - 配置 Git

    用git config配置 Git,要做的第一件事就是设置名字和邮箱地址: $ git config --global user.name "John Doe" $ git con ...

  9. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

随机推荐

  1. 编译lsusb

    参考博客: http://blog.csdn.net/mcy_cool/article/details/10178841 涉及到的源码: http://files.cnblogs.com/files/ ...

  2. Color Transfer between Images code实现

    上计算机视觉课老师布置的作业实现论文:Color Transfer between Images 基本思路是: 1.给定srcImg和targetImg 2.将RGB空间转为Lab空间 3.根据论文中 ...

  3. 原创:从零开始,微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...

  4. 从 github 上 fork repositories 后,如何和原仓库同步?

    1. 首先要先确定一下是否建立了主repo的远程源: git remote -v 2. 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源: git remote ...

  5. 分享在winform下实现左右布局多窗口界面-续篇

    之前的这篇文章<分享在winform下实现左右布局多窗口界面>已经实现了左右布局多窗口界面,今天本来是研究基于winform的插件编程,没想到顺便又找到了另一种实现方案,这种实现方案更简单 ...

  6. 【原创】Kafka console consumer源代码分析(二)

    我们继续讨论console consumer的实现原理,本篇着重探讨ZookeeperConsumerConnector的使用,即后续所有的内容都由下面这条语句而起: val connector = ...

  7. 关于项目中值对象Identifier的设计-领域驱动

    到现在为止做了不项目,发现每个实体都会有个相应的值对象. 先简单说一下值对象和实体之间的区别: (以下内容来着<领域驱动设计>一书) 当一个小孩画画的时候,他注意的是画笔的颜色和笔尖的粗细 ...

  8. 用C#读取相片(JPG图片)的EXIF信息的方法

    引言:EXIF,是英文Exchangeable Image File{}#endregion#region 数据转换结构/// summary>/// 转换数据结构/// /summary> ...

  9. 更换Kali源让你更新更快

    在2016.1版本kali-linux(也就是kali滚动更新版)更新慢解决办法: (此源为2.0版本)中科大kali滚动更新版源(即kali2.0源) #kali官方源 deb http://htt ...

  10. [moka同学笔记]五、Yii2.0课程笔记(魏曦老师教程)[审核功能]