GitHub + VSTS 开源代码双向同步
GitHub已经是全球开源代码的大本营了,通过以下统计你可以看到仅仅javascript在github就有超过32万个活动的repo。很多开发人员都会把自己的一部分代码分享到github上进行开源,一方面可以提高自己在编程领域的知名度,也可以吸引其他的开发人员帮助你一起改进,当然还可以认识更多的朋友,要不怎么说github其实是个交友网站呢。
但是github上免费的repo只能是公开的,对于一些我们不希望完全开源的项目,就没有办法免费分享了,当然你可以付费升级到专业版,这样就可以托管私有repo了。
Visual Studio Team System是微软提供的免费的企业级软件开发Saas服务,提供免费的私有git repo服务。我周围的很多朋友都将自己或者公司的项目托管在VSTS上,其中也有一部分是开源的。
结合GitHub免费的公有repo和VSTS上免费的私有repo,我们可以搭建一套内外结合的开源代码开发平台,让我们可以控制哪些代码开源,同时接受社区对开源代码的贡献。常见场景主要有:
- 将私有的repo的master分支与公有repo的master分支进行双向同步,支持主要发行版与社区的分享,接受PR。
- 将私有repo的特定分支与公有repo的master分支进行双向同步,支持特定发行版与社区的分享,接受PR;在内部经过新一轮PR后并入私有master分支。
- 支持私有发行版与公有发行版的差异化发布。
- 支持自动和手动同步。
在VSTS上创建CI来完成同步配置
VSTS上的CI引擎内置对GitHub和VSTS本身自带的git的支持,借助这个功能我们可以很容易的建立同步机制。
1. 建立从VSTS到GitHub的同步作业
建立一个构建定义,使用Empty的模版,选择VSTS上的repo作为代码来源
在里面添加2个Command line的任务,分别配置成以下命令
Git pull https://github.com/ups216/vsalm-hols.git master
Git push https://$(githubtoken)@github.com/ups216/vsalm-hols.git head:master
你会注意到在第二个命令中我使用了一个叫做$(githubtoken)的参数。你可以通过GitHub生成这样一个Personal Access Token,并使用以下页面绑定到构建定义,这样在运行的时候用户是看不到这个token的具体内容的。
注意图中箭头所指向的加锁标注,VSTS会采用加密的方式存储密钥,确保用户看不到具体内容。
2. 建立从GitHub到VSTS的同步作业
这里的配置过程相反,在第一步我们创建一个从GitHub上获取代码的构建定义
然后运行以下两个命令
Git pull https://$(vststoken)@almnetworks.visualstudio.com/DefaultCollection/_git/vsalm-hols master
Git push https://$(vststoken)@almnetworks.visualstudio.com/DefaultCollection/_git/vsalm-hols head:master
你会注意到这里在pull和push的命令上都用了$(vststoken)参数,这是因为我们所操作的vsts上的repo是一个私有的repo,读取和写入都需要认证。
建立好以上配置我们就可以测试这个双向同步过程了,以下是测试视频:
以上是最简单的真对master分支的双向同步配置,如果需要同步特定分之,我们只需要对git命令进行简单修改即可。
请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息
GitHub + VSTS 开源代码双向同步的更多相关文章
- Windows平台上通过git下载github的开源代码
常见指令整理: (1)检查ssh密钥是否已经存在.GitBash. 查看是否已经有了ssh密钥:cd ~/.ssh.示例中说明已经存在密钥 (2)生成公钥和私钥 $ ssh-keygen -t rsa ...
- 通过Webstorm上传代码到Github、更新代码后同步到github及克隆github代码到本地的方法
导读: Github做为IT爱好者分享代码的一个知名的平台,广受大家喜欢,那么我们平时该怎么将自己写的代码上传到github上面保存并且提供给其他人参考? 我想方法不外乎如下几个: 1.直接在gith ...
- lsync 负载实现代码双向同步
参考文件: https://www.zyku.net/centos/1713.html 检查错误命令: lsyncd -pidfile /tmp/lsyncd.pid /etc/lsyncd.con ...
- TODO:Github的使用技巧之同步代码
TODO:Github的使用技巧之同步代码 GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008 年 ...
- SymmetricDS 数据库双向同步开源软件入门
一句话概括该软件:SymmetricDS是一个文件和数据库同步软件,开源的,支持多主复制,同步时过滤和在异构的网络环境中进行数据转换传输.它支持单向和双向上的多个订阅者,异步的数据复制. 以下是从CS ...
- github使用及代码同步
github是近两年比较火的分布式版本控制工具,很多nb的开源项目代码都托管在github上,比如Facebook.JQuery.Node.js等等,这里简单介绍一下github使用方法以及和本地工程 ...
- android studio 打开github开源代码
1.最近下载的开源代码全是github来的,一直用eclipse开发,对于android studio来说是全新的 2.在eclipse导入一个工程那是so easy, import选择一下就可以. ...
- github 开源 代码 学习 集合(转载)
一个支持多种item类型的recycleView依赖注入库 1.通过注解的方式方便的把ViewHolder注入到recycleView中. 2.去除findViewByID等冗余操作. 3.去除编写a ...
- 【GitLab】【GitHub】GitLab和GitHub的双向同步
有这种需求,需要GitLab上的现有代码库,同步到GitHub上. 又有一种需求,需要将GitHub上的代码库,同步到gitlab上. 一.GitLab上的代码库,自动同步到GitHub上 大致需要三 ...
随机推荐
- 海量数据处理利器greenplum——初识
简介及适用场景 如果想在数据仓库中快速查询结果,可以使用greenplum. Greenplum数据库也简称GPDB.它拥有丰富的特性: 第一,完善的标准支持:GPDB完全支持ANSI SQL 200 ...
- Contents Of My Blogs
C++ How To Use Goto? Preprocessing Directive std::array std::deque std::forward_list std::map std::m ...
- Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1. ...
- iOS-----App闪退,程序崩溃---解决方案
1.iOS-中app启动闪退的原因 2.iOS开发-闪退问题-解决之前上架的 App 在 iOS 9 会闪退问题 3.iOS-应用闪退总结 4.iOS开发-捕获程序崩溃日志 5.iOS开发-应用崩溃日 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(35)-文章发布系统②-构建项目
系列目录 注:阅读本文,需要阅读本系列的之前文章 代码生成器下载地址(文章开头处) 接下来我们建立数据库的表和各层的代码 我们只需要两张表,文章列表(MIS_Article)和类别表(MIS_Arti ...
- 完整记录一则Oracle 11.2.0.4单实例打PSU补丁的过程
本文记录了打PSU的全过程,意在体会数据库打PSU补丁的整个过程. 1.OPatch替换为最新版本2.数据库软件应用19121551补丁程序3.数据库应用补丁4.验证PSU补丁是否应用成功 1.OPa ...
- Properties操作指南
一.简介: Properties是java中用的比较多的一个类,表示一个持久的属性集.继承于Hashtable,Properties可从流中加载,也可保存在流中.属性列表中每个键极其对应值共同组成一个 ...
- 通过Http接口及SolrNet 两种方法基于Solr5.5.1 实现CURD
前言 老规矩,任何技术的入门我通常都会总结增删改查,本文我就通过HttpWebRequest和SolrNet的方式实现Solr最基础的增删改查(CURD).对于自己的完整项目,同时不想过于依赖第三方类 ...
- 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup
开始学习网络数据挖掘方面的知识,首先从Beautiful Soup入手(Beautiful Soup是一个Python库,功能是从HTML和XML中解析数据),打算以三篇博文纪录学习Beautiful ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...