【前言】
Github和Azure DevOps都提供了Git代码库功能,那么有没有办法将两边的代码库进行同步呢,答案是肯定的。
这里的操作我都是用Azure DevOps的Pipelines功能来完成的,当然用Github的Actions应该也能达到类似的效果,其他小伙伴们不妨尝试一下。
 
【从Azure DevOps到Github】
由于我个人平时习惯于用Azure DevOps存放代码,所以这里就先讲如何将你再Azure DevOps提交的代码同步到Github仓库
首先我们创建一个新的Pipeline,起名叫“Sync From Azure DevOps to GitHub”
 
因为这里是要同步Azure DevOps的代码,所以Connect下选择Azure Repo Git,不熟悉YAML的同学可以点击下方的Use the classic editor,就会变成一个图形化的设置界面
第二步,选择你的代码库,这里我选的是Ant-Design-Blazor

第三步,选择模板,这里图片截不下了,往下拉选择Starter pipeline

YAML内容如下,注意username里的‘@’要替换成‘%40’

关于如何编写Pipeline YAML可以参考微软的文档 https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema

  1. # Starter pipeline
  2. # Start with a minimal pipeline that you can customize to build and deploy your code.
  3. # Add steps that build, run tests, deploy, and more:
  4. # https://aka.ms/yaml
  5. variables: # pipeline-level
  6. branch: 'azure_branch'
  7.  
  8. trigger:
  9. - master
  10. pool:
  11. vmImage: 'ubuntu-latest'
  12. steps:
  13. - script: |
  14. git remote add github https://<username>:<password>@github.com/Brian-Ding/ant-design-blazor.git
  15. git checkout -b $(branch)
  16. git push -u github $(branch)
  17.  
  18. displayName: 'Command Line Script'

【从Github到Azure DevOps】

前面的操作都和之前类似,只是记得Connect那一步要选择Github

  1. steps:
  2. - script: |
  3. mkdir sync
  4. cd sync
  5. git clone https://github.com/xxx/xxx.git
  6. cd <github project>
  7. git remote add azure https://<Azure DevOps Organization>:<token>@dev.azure.com/<Azure DevOps Organization>/<project>/_git/<repo.git>
  8. git branch -D $(branch)
  9. git checkout -b $(branch)
  10.  
  11. git push -d azure $(branch)
  12. git push -u azure $(branch) --force
  13. displayName: 'Command Line Script'
 

Github和Azure DevOps的代码同步的更多相关文章

  1. 在推送提交之后阻止Azure DevOps (TFS)持续集成

    在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...

  2. 从一个小Bug,到Azure DevOps

    1. 一个小Bug 最近和同事提起一个几年前的 Bug,那是一个很小很小的 Bug,没什么技术含量.那时候我刚入职,正好公司卖了一款仪器到某个国家,但是那边说配套的软件运行不起来,一打开就报错.经过排 ...

  3. [Azure Devops] 使用 Azure Repos 管理代码

    1. 什么是 Azure Repos Azure Repos 是一组版本控制工具,可用于管理代码.无论您的软件项目是大型项目还是小型项目,都应尽快使用版本控制. 版本控制系统是可帮助您跟踪随时间变化对 ...

  4. idea上实现github代码同步

    1.先将github远程仓库clone到本地 2.将本地仓库中的项目导入到idea中 3.如果你的项目代码不是放在仓库的根目录下,idea会识别到你的项目是在git仓库目录下,必须点击add root ...

  5. github使用及代码同步

    github是近两年比较火的分布式版本控制工具,很多nb的开源项目代码都托管在github上,比如Facebook.JQuery.Node.js等等,这里简单介绍一下github使用方法以及和本地工程 ...

  6. 如何将Azure DevOps中的代码发布到Azure App Service中

    标题:如何将Azure DevOps中的代码发布到Azure App Service中 作者:Lamond Lu 背景 最近做了几个项目一直在用Azure DevOps和Azure App Servi ...

  7. asp.net core webapi/website+Azure DevOps+GitHub+Docker

    asp.net core webapi/website+Azure DevOps+GitHub+Docker 新春开篇作,主要写一下关于asp.net core web/api 2.2 项目借助dev ...

  8. Azure DevOps Server(TFS): 在Excel中解除服务器同步

    通过Azure DevOps Server 提供与Excel集成的功能,用户可以非常便捷地使用Excel,实现工作项数据的同步. 对于需要批量处理数据.离线工作.制作临时报表的用户来说,这个功能必定成 ...

  9. Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)

    之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...

随机推荐

  1. opencl(7) 内核执行命令入队]工作组、工作项

    1:将内核执行命令入队(该命令可被多个工作项执行) cl_int clEnqueueNDRangeKernel( cl_command_queue command_queue, cl_kernel k ...

  2. KVM虚拟机使用NAT+iptables做端口映射

    环境介绍 有一个KVM宿主机,一个外网IP绑定在了宿主服务器上,但是希望直接用ssh访问上面的所有虚拟机,还想虚拟机提供外网服务, 解决方法如下: 环境为RHEL6.3,外网IP为 61.155.xx ...

  3. Python中class的三种继承方法

    class parent(object): def implicit(self): print("Parent implicit()") def override(self): p ...

  4. v-bind 缩写

    Vue.js 为两个最为常用的指令提供了特别的缩写: <!-- 完整语法 --> <a v-bind:href="url"></a> <! ...

  5. FR6安装问题备注

    好久以前偶尔用用FR,采用安装执行文件的方式(5.3版安装没问题).及其编译包的方式都没有问题,最近在6.x提示如下(fr6_5_11_all_ent等),不知是系统原因还是文件问题,未解: ---- ...

  6. (十)自动化测试pom完整文件

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  7. Linux服务器安装python3.6

    CentOS 7上默认安装的python版本是2.7.5,系统自带的旧版本python被系统很多其他软件环境依赖,因此不能卸载原Python,直接选择Python3.6.5进行全新安装. 1 安装Py ...

  8. 恕我直言你可能真的不会java第4篇:Stream管道流Map操作

    一.回顾Stream管道流map的基础用法 最简单的需求:将集合中的每一个字符串,全部转换成大写! List<String> alpha = Arrays.asList("Mon ...

  9. 键盘侠Linux教程(五)| 基本权限管理

    基本权限管理 权限的介绍 权限位的含义 前面讲解ls命令时,我们已经知道长格式显示的第一列就是文件的权限,例如: [root@es ~]# ls -l anaconda-ks.cfg -rw----- ...

  10. easymock案例2

    public interface IStudent { public String doMethod1(); public String doMethod2(); public String doMe ...