将我的Github回购同步到MS Visual Studio团队服务

将我的Github回购同步到MS Visual Studio团队服务,git,github,azure-devops,azure-pipelines,azure-pipelines-build-task,Git,Github,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,我是VSTS新手,正在尝试将我的Github repo同步到VSTS环境,以便将我的工作环境完全集成到VSTS环境中。我想同步我的Github repo以更新VST上所做的任何更改。这个过程非常混乱 我点击了这个链接: 新的界面并不完全反映教程的内容,但我能够理解大部分内容。我做了以下工作: 我创建了构建的新定义 链接到我的github回购 设置访问令牌 按照上面教程链接中的说明设置任务命令 保存定义并创建运行任务的队列 当我在Github中对一个分支进行更改时,这种方法很有效 但我最终要做的是

我是VSTS新手,正在尝试将我的Github repo同步到VSTS环境,以便将我的工作环境完全集成到VSTS环境中。我想同步我的Github repo以更新VST上所做的任何更改。这个过程非常混乱

我点击了这个链接:

新的界面并不完全反映教程的内容,但我能够理解大部分内容。我做了以下工作:

我创建了构建的新定义

链接到我的github回购

设置访问令牌

按照上面教程链接中的说明设置任务命令

保存定义并创建运行任务的队列

当我在Github中对一个分支进行更改时,这种方法很有效

但我最终要做的是:

我希望它与回购协议同步,包括所有分支机构。所以,如果我为Pull请求创建一个新分支,我希望它自动应用到VST


我真的需要已经使用过VSTS的人的帮助,他们知道如何与Github repos和VSTS进行完全同步。如果您想使用VSTS在每个分支上进行构建,则需要编辑构建定义,然后设置适当的触发器。这样,构建将自动进行,而不必手动将它们排队


这方面的官方信息非常好,并且更详细。

如果您总是对VSTS git repo进行更改,并且需要相应地同步github repo,那么您可以使用一个VSTS CI构建定义来实现它。 具体步骤如下:

git checkout $(Build.SourceBranchName)
git remote add github https://username:password@github.com/username/reponame
git push github $(Build.SourceBranchName)
使用PowerShell任务创建CI生成; 在获取源步骤中选择VSTS git repo; 启用连续集成并指定包含分支筛选器的所有分支:

为powershell任务添加powershell脚本,如下所示:

git checkout $(Build.SourceBranchName)
git remote add github https://username:password@github.com/username/reponame
git push github $(Build.SourceBranchName)
确保取消选择PowerShell任务的标准错误失败选项:


现在,在VSTS git repo上进行任何更改后,github repo将自动更新。

回答得很好!还有一种同步拉取请求的方法吗?是的,您可以使用VSTS web钩子触发拉取请求创建事件,然后通过github rest api在github上创建拉取请求。@MSFT我建议用PersonalAccessTokens替换密码,这样更安全。这个解决方案对我来说是可行的,但即使GitHub repo更新正确,我在控制台中也会遇到这个错误,导致构建失败:分支“主”设置为从“源”跟踪远程分支“主”。[错误]切换到新的分支“master”到2225935..fb28257 master->master您知道它可能是什么吗?