首页 > 解决方案 > 在 VSTS / Azure DevOps 中推送时将定义镜像存储库构建到外部 git 存储库

问题描述

如标题所示,我在 VSTS/Azure DevOps 中进行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。我的 realease 或 master 分支。我已经从市场上尝试了几个插件,但似乎没有一个能满足我的需求。我有几个先决条件:

由于内置镜像功能,我也尝试过 Gitlab,但不幸的是,它不接受端口 33,只有 22 和其他标准端口:-(

非常感谢您!

标签: gitazure-devopsazure-pipelinescustom-build-stepgit-mirror

解决方案


如果“Build.SourceBranch”与“master”或“release”匹配,则可以添加带有 Condition 的 PowerShell 构建步骤,然后 PowerShell 脚本类似于此示例。这会一次性推动所有内容,而不是每次提交。这也可以赶上落后的回购。

# Test to see if remote alias already exists
git ls-remote ssh://user@host:1234/srv/git/TargetRepoSameName
# Add a remote alias
git remote add any_name_123 ssh://user@host:1234/srv/git/TargetRepoSameName

# push local repo to 'any_name_123'
git push any_name_123 --all
# optional: delete all tags before attempting to push local tags
git push any_name_123 --delete `$(git tag -l)
# push local tags to remote repo 
git push any_name_123 --tags

请注意,我使用的是端口号 1234,而如果您不指定端口,则默认值为 22。请在您的整体解决方案中使用此代码段。您还可以使用 git-hook 推送更改。


推荐阅读