我在Visual Studio Team Services中有一个代码库,我希望与GitHub存储库保持同步。
这使我可以在VSTS中进行主要开发,当合并到主分支时,它将与GitHub同步,并允许其他人在GitHub上进行贡献。当拉取请求合并到主分支时,它也会与VSTS同步。
我在Visual Studio Team Services中有一个代码库,我希望与GitHub存储库保持同步。
这使我可以在VSTS中进行主要开发,当合并到主分支时,它将与GitHub同步,并允许其他人在GitHub上进行贡献。当拉取请求合并到主分支时,它也会与VSTS同步。
首先在 VSTS 上创建一个新的构建,该构建使用应从 VSTS 同步的代码库:
其中后两个中的最后一个需要来自 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选项,以便每当向主分支提交新内容时触发构建运行。
现在也可以以另一种方式完成相同的操作,但将URL更改为目标Visual Studio Online存储库。
请注意,在vsts上使用个人令牌进行身份验证时,URL的身份验证部分需要为https://:token@,而在GitHub上只需使用https://token@。
push https://$(vstspersonaltoken)@sinnovations.visualstudio.com/DefaultCollection/S-Innovations%20MessageProcessor/_git/messageprocessor-service-fabric head:master
VSTS进行了更改,如果冒号出现,将无法通过验证。上述说明已更新。
如果想要使用PowerShell将Github上的所有分支同步到VSTS,请按照以下步骤操作:
首先需要在VSTS中创建一个与Github同名的仓库。
然后添加以下脚本作为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 }
fatal: Not a git repository (or any of the parent directories): .
我不确定该怎么办... - Jay