有没有办法使用API将一个分支合并到另一个分支?
我看过这里,但它似乎没有为我提供解决方案(推送单个文件很繁琐): https://www.visualstudio.com/en-us/docs/integrate/api/git/pushes
我想如果使用其余的API没有办法做到这一点,是否可以通过私有构建代理上的powershell脚本运行git命令来完成?
答案 0 :(得分:3)
不,VSTS Git或Version Control API中似乎没有公开任何合并操作。
这使您获得官方的“构建和发布步骤”:“Run Git commands in a script”,它可以让您运行Git命令,然后返回到VSTS-Git仓库。 该页面有一个带有合并示例的脚本(虽然简单的bat脚本,而不是Powershell脚本):
@echo off
ECHO SOURCE BRANCH IS %BUILD_SOURCEBRANCH%
IF %BUILD_SOURCEBRANCH% == refs/heads/master (
ECHO Building master branch so no merge is needed.
EXIT
)
SET sourceBranch=origin/%BUILD_SOURCEBRANCH:refs/heads/=%
ECHO GIT CHECKOUT MASTER
git checkout master
ECHO GIT STATUS
git status
ECHO GIT MERGE
git merge %sourceBranch% -m "Merge to master"
ECHO GIT STATUS
git status
ECHO GIT PUSH
git push origin
ECHO GIT STATUS
git status
答案 1 :(得分:1)
作为VonC解决方案的后续行动,您需要授予VSTS Build服务帐户权限以便为存储库做出贡献。
注意:也需要阅读,但应该已经允许。
您还需要创建构建变量: system.prefergit并将该值设置为true。
这些步骤详见VonC提供的链接