配置git同时push到两个远端库的简单方法
最近在写一个开源的论坛系统,在发布代码时选择了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
这个是错的,我已经在上面引用中改正了
我该如何使用这个功能?
看完之后我试了一下,这个应该这么用
先把你要第一个push的代码用git remote add这种通常的办法添加好,这里将这个远端库命名为bucket
git remote add bucket git@git.coding.net:xxxxx第二步,用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到两个远端库的简单方法的更多相关文章
- maven 配置mirror后,本地库与远端库冲突
settings.xml中主要包括以下元素: localRepository interavtiveMode offline pluginGroups proxies servers mirrors ...
- 使用git将项目上传到github(最简单方法)
首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://gi ...
- 【转】使用git将项目上传到github(最简单方法)
原文地址:http://www.cnblogs.com/cxk1995/p/5800196.html 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ ...
- idea中如何配置git以及在idea中初始化git,并push到码云
一.给idea配置git 打开IDEA,按照路径 Fie-->Settings --> Tools -->Terminal 找到后设置右边的Shell path(自己安装的Git路 ...
- Idea中Git的使用和两种类型的冲突解决
一.Git冲突解决 在idea开发工具中使用Git时,主要用到的快捷按钮如下五个: 这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThin ...
- Android Studio配置Git及Git文件状态说明
Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/downlo ...
- 配置Git Extension免密码发布代码到CSDN
配置Git Extension免密码发布代码到CSDN [本文默认大家安装了Git以及Git Extension] 今天花费了许多的时间处理这个问题,希望能给大家节约时间.闲话少说:使用ssh验证来p ...
- 自定义 Git - 配置 Git
用git config配置 Git,要做的第一件事就是设置名字和邮箱地址: $ git config --global user.name "John Doe" $ git con ...
- [转载]Ubuntu安装配置 git 服务器和客户端
原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...
随机推荐
- 网络通信简单实例BIO,NIO,AIO
这里,我将做一个简单的通信程序,分别使用三种原始的通信工具:BIO,NIO,AIO. 功能就是一个服务器,一个客户端.服务器就是处理请求,返回响应.而客户端就是连接服务器,发送请求,接收响应. 第一步 ...
- struts2学习笔记--上传单个和批量文件示例
struts2提供了对上传文件的支持,将上传后的文件封装为java.io.File对象,开发者只需要在Action中定义一个File类型的变量,然后直接使用该变量,将它复制到目的目录即可. 单个文件上 ...
- Cesium应用篇:3控件(3)SelectionIndicator& InfoBox
假设这样一个场景,用户在Cesium球上加载了一个GeoJson文件(DataSource),里面是全美国所有州的Geometry信息(Entity),叠加到球面后,你自然会有一种冲动,点击某一个州, ...
- NSPredicate 的使用
NSPredicate是什么? NSPredicate 是预测的意思 但是我们常翻译成谓词 它可以干什么? 使用NSPredicate可以定义模糊查询条件 根据一定的条件 我们就可以从一个数组中快速找 ...
- 让 select 的 option 标签支持事件监听(如复制操作)
这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...
- 谈I/O模型
一个IO操作涉及两个系统对象: 调用这个IO的用户Process/Thread 系统内核 - System Kernel 一个具体的Read操作包括两个阶段: 内核等待数据准备就绪:Waiting f ...
- sql语句优化SQL Server
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ...
- MVC学习系列——Filter扩展
在MVC中,Filter也是可以扩展的.在此,本人对Filter的理解就是AOP,不知道各位大侠,有什么高的见解,呵呵... 首先MVC四大过滤神器IAuthorizationFilter,IActi ...
- nodejs连接mongodb的方法
一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ...
- codevs 1021 玛丽卡(spfa)
题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...