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命令进行简单修改即可。

本文基于以下博客:
https://nkdagility.com/open-source-vsts-tfs-github-better-devops/


请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

转载于:https://www.cnblogs.com/wuyida/p/6300117.html

GitHub + VSTS 开源代码双向同步相关推荐

  1. 华为首款可折叠屏5G手机今日开售;GitHub将开源代码保存在北极;Win10禁用WEP加密|极客头条...

    整理 | 郭芮 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  2. GitHub YOLOv5 开源代码项目系列讲解(五)------链接手机摄像头实现目标检测

    本专栏将从安装到实例运用全方位系列讲解 GitHub YOLOv5 开源代码. 专栏地址:GitHub YOLOv5 开源代码项目系列讲解 目录 1 手机下载 "IP摄像头" AP ...

  3. 大公司在Github的开源代码

    最近开始学着使用github,对于我这个菜鸟来说看懂这个英文网站已经很不容易.网上无意看到一篇文章,感觉很好,现转载.希望自己有时间有能力去读读开源代码,也希望不仅仅是用别人的东西,自己可以为开源贡献 ...

  4. Github优秀开源代码

    --------------------- 作者:benpaobagzb 来源:CSDN 原文:https://blog.csdn.net/benpaobagzb/article/details/50 ...

  5. 各大公司在github的开源代码

    Alibaba(阿里巴巴):阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的18人,于1999年在中国杭州创立. https://github.com/alibaba 例如 ...

  6. Android框架——github上开源代码

    以下是小海收集的常用Github上比较优秀的项目,希望对大家日常开发有所帮助. 在此感谢小海做出的贡献!!! Type LibDescription   LibLocation Android     ...

  7. 基于git和svn的开源代码托管平台

    文章目录 1.基于Git在线托管平台 GitHub & Bitbucket & GitLab & Coding 的对比分析 基本特征 哪个是开源的服务或产品 开源与协作,谁是最 ...

  8. 开源代码维护人员大诉苦水,超半正考虑或已经决定放弃

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 代码开源,或许会让许多开发者兴奋不已. 但作为开源代码的维护者,又会是一种什么体验呢? 就好比成千上百人站在你家门口,大声吆喝着: 有合并代 ...

  9. “美版贴吧” 强制对 API 收费遭开发者反击:关闭第三方 App 开源代码、数千个子论坛改私有模式、直接搞崩官网!...

    整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 网站大规模宕机: 第三方开发者欲关闭客户端之际,直接在 GitHub 上开源代码: 存档团队开始提前存档内容: 近六千个子论坛关闭了对外访 ...

最新文章

  1. OpenGL OBJ模型加载.
  2. springboot 两个src_springboot application.properties 写多个配置文件怎么写
  3. 淘宝架构师为你揭秘2017双十一分布式缓存服务Tair
  4. node npm nrm nvm gnvm 相爱相杀
  5. keras构建卷积神经网络_在Keras中构建,加载和保存卷积神经网络
  6. AT4513-[AGC030D]InversionSum【dp】
  7. spring源码分析第四天------springmvc核心原理及源码分析
  8. 56秒看完131年英格兰顶级联赛冠军排行:利物浦时隔30年再夺冠
  9. 高性能访客记录系统如何设计?
  10. windows下安装使用WGET
  11. JS中的拖动之—— ondragstart,ondrag,ondragend , ondragenter , ondragover , ondragleave, ondrop 的区别...
  12. mindspore-ResNet101使用GPU进行训练时报错
  13. 计算机毕业设计之java+springboot基于vue的4S店车辆管理系统
  14. UVA 10827 Maximum sum on a torus .
  15. 羽素玩转开学季,1000份豪礼相送
  16. html Antv L7 + mapbox 实现3D地图 3D中国地图 不限于中国地图
  17. 如何利用小红书进行产品营销?小红书营销技巧有哪些?
  18. Oracle Cursor
  19. win10 qq远程不上服务器未响应,win10系统QQ远程协助连不上的解决方法
  20. Linux设备驱动程序

热门文章

  1. 管理类联考-英语 : 基础 [ 二 ]
  2. 为什么夏天鼻炎严重?
  3. 计算机学院写新条幅,用代码写迎新条幅什么情况 背后的原因让人忍不住笑了...
  4. Java文件是怎么编译成Class文件的
  5. H盘提示“文件或目录损坏且无法读取”怎么修复
  6. 女神必备小白鞋,随便搭配都美的不行!
  7. 2021 年第十三届四川省 ACM-ICPC 大学生程序设计竞赛
  8. Access+VBA: ADODB数据库访问(一)
  9. 从键盘输入一个百分制的学生分数,判断并输出该分数的等级。
  10. CollapsingToolbarLayout + Toolbar结合使用minHeight不生效源码分析