git - Azure DevOps 使用 Git 子模块的问题
问题描述
我在 Azure DevOps 中定义的构建管道遇到了问题。这个问题类似于这篇文章中描述的问题,但引用的修复对我不起作用。构建作业Get Source任务运行,但我定义的 Powershell 失败,因为代理使用了分离的 HEAD。我是 Git 和 Azure DevOps 的新手(在 SVN 和 TeamCity/CruiseControl.NET/NANT 方面有丰富的经验),所以在不同的命令和权限之间我很受阻。
我能够创建两个测试存储库并将一个作为另一个的子模块。我构建了一个使用 Powershell 任务将子模块更新为 HEAD 的过程:
Write-Host
Write-Host "RUNNING: git status"
git status
Write-Host
Write-Host "RUNNING: git checkout SubmoduleExperiment"
git checkout SubmoduleExperiment
Write-Host
Write-Host "RUNNING: git submodule update --remote --merge"
git submodule update --remote --merge
Write-Host
Write-Host "RUNNING: git commit -am ""updated submodule"""
git commit -am "updated submodule"
Write-Host
Write-Host "RUNNING: git push"
git push https://$($env:PatForGitPushes):PAT@myTeam.visualstudio.com/MyTeam/_git/my-test HEAD:SubmoduleExperiment
但是,当我将相同的任务应用于我的实际项目/构建时,它会失败,因为当git checkout master
它告诉我时,behind 'origin/master' by 1 commit
即使分离的 HEAD 指向与 origin/master 相同的提交。
我已经将我的测试和“真实”构建之间的获取源任务设置为相同。我已将子模块的 URL 设置为在两者中都使用 PAT。
关于如何解决这种情况的任何建议?
解决方案
推荐阅读
- laravel - Laravel 如果使用 wherebetween,数据不显示全部
- spring-boot - Swagger 3.0.0 - 没有看到 @RequestBody 的架构
- android - 在 android 的 AlertDialog 中检查 TextInputEditText
- javascript - (deferLoad) 事件 - 如何知道可见项目
- html - 如何为 HTML 表格设置最大高度?
- jpa - Java 持久性内部异常:带有 EntityManager 的 java.lang.NullPointerException
- sql - Codeigniter 3 中的子查询如何
- javascript - 构建支持“新”类 webpack.js 的库的最佳方法
- java - 如何存储/访问数据并防止地图中的竞争条件,java
- discord.js - Discord.js ${message} 在我尝试打印时不起作用