【问题标题】:How to synchronize VSTS and Github respositories when commits are made提交时如何同步 VSTS 和 Github 存储库
【发布时间】:2016-04-23 17:20:22
【问题描述】:

我在 Visual Studio 团队服务中有一个存储库,我想与 github 存储库保持同步。

这允许我在 VSTS 中进行我的主要开发,当合并到 master 时,它将同步到 github,还允许其他人在 github 上贡献,当 Pull Requests 合并到 master 时,它会同步到 VSTS。

【问题讨论】:

    标签: github azure-devops


    【解决方案1】:

    首先在 VSTS 上创建一个使用应从 VSTS 同步的存储库的新构建:

    添加两个将运行一些 git 命令的 CMD 任务。

    两者中的最后一个需要来自 Github 的个人访问令牌。

    在图像中,两个 CMD 任务都使用 GIT 工具和以下两个命令:

    pull https://github.com/s-innovations/MessageProcessor.ServiceFabric.git master
    

    push https://$(githubpersonaltoken)@github.com/s-innovations/MessageProcessor.ServiceFabric.git head:master
    

    启用 CI 选项以触发构建运行,只要有东西提交给 master。

    现在可以用另一种方式进行相同的操作,以相同的方式进行新构建,但将 url 更改为目标 V​​isual Studio 在线存储库。

    请注意,在 vsts 上使用个人令牌时,url 的身份验证部分需要为 https://:token@,而在 github 上则为 https://token@

    push https://$(vstspersonaltoken)@sinnovations.visualstudio.com/DefaultCollection/S-Innovations%20MessageProcessor/_git/messageprocessor-service-fabric head:master
    

    2017 年 8 月更新

    他们在 VSTS 上对其进行了更改,因此如果存在冒号,它将无法通过身份验证。以上描述已更新。

    【讨论】:

    • 抱歉,这里我有些不清楚。你为什么要从 Github 拉,然后再推到 Github?不应该是从 VSTS 拉出来推到 Github 上吗?
    • 前段时间我用过这个,但如果我没记错的话它已经完成了,因为可能在 github 上进行了一些更改,并在推送之前拉动这些。
    • 您好 Poul,非常感谢您的回复。是的,我明白了,现在我知道这一步的原因是什么。但是当我尝试在我的 VSTS 中运行这些步骤时,它会不断抛出这个错误:fatal: Not a git repository (or any of the parent directories): . 在拉动步骤上。不知道该怎么做...
    • 您可以为 Azure DevOps Repos 制作教程吗?这将是一个很大的帮助
    【解决方案2】:

    对于任何想要使用 powershell 将所有分支从 Github 同步到 VSTS 的人

    你需要先在 VSTS 中创建一个在 Github 中同名的 repo。

    添加一个 PowerShell 进程作为以下脚本。它应该适用于任何帐户和回购。

    git branch -r | findstr /v "\->" | ForEach-Object {$br=$_.TrimStart(); git branch --track $br.TrimStart("origin/") $br} $repoName = "$env:BUILD_REPOSITORY_NAME".split('/')[1] $repoUri = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI".Substring(8)+ "_git/$repoName" git remote add vsts "https://$env:SYSTEM_ACCESSTOKEN@$repoUri" git branch -r | findstr /v "\->" | ForEach-Object { $br=$_.TrimStart(" origin/"); git push -u vsts $br }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2012-04-05
      • 2022-10-06
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多