git - 如何将最新提交推送到 devops 构建管道的外部远程源?
问题描述
我有 2 个单独的代码仓库,包含相同的代码,源 1 和源 2。我们的开发团队只将新代码推送到源 1,但我需要从源 2 构建我们的代码。
如何使用 Azure Devops CI 使两个源远程自动保持最新?
我的想法是使用连接到 Origin 1 的 Azure Devops Build Pipeline 并在构建中添加 Origin 2 作为远程,然后推送更改,但是在克隆最新更改时,devops 管道似乎分离了头部。
知道如何自动化吗?
现在我有:
- task: CmdLine@2
inputs:
script: |
echo Adding git remote
git remote add origin2 https://myRemoteoriginGit
git push origin2 my-branch
failOnStderr: true
解决方案
知道如何自动化吗?
在 Origin 1 管道中,您可以在PowerShell任务中尝试以下脚本。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$branch="$(Build.SourceBranch)".replace("refs/heads/","")
git remote add Reponame https://PAT@dev.azure.com/org/project/_git/reponame
git checkout $branch
git push Reponame $branch -f
您可以设置所有分支来触发此构建(CI 触发器)。
然后此脚本将更新对 Origin 2 中相应分支的更改。
克隆最新更改时,devops 管道似乎分离了头部。
根据你的描述,我猜你看到的是这段文字:</p>
您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,您可以放弃在此状态下所做的任何提交,而不会通过切换回分支来影响任何分支。
如果是,这就是 Azure DevOps 的工作方式。没有什么是错的。
这是一张票,你可以参考一下。
希望这可以帮助。
推荐阅读
- javascript - 一个数组中多个对象的求和和平均值到一个数组中
- r - R:在两个列表中查找(最佳/不完全)匹配元素的索引
- c++ - 将 MemberIterator 转换为值
- javascript - 在heroku上启动时应用程序错误
- node.js - 我的脚本如何读取环境变量的更新值(由另一个进程更新)?
- firefox - Firefox 上的 VoiceOver - 将所有元素读取为可点击
- javascript - 为什么带有回调的函数没有在异步函数中执行?
- apache-spark - Spark 执行器作为尽力而为的 pod
- javascript - 按键获取深度嵌套对象的路径
- angular - Storybook Angular NX 工作区:如何使用 Chromatic 发布?