Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;在.gitmodules";中找不到子模块路径的url;Azure DevOps生成中出错_Git_Azure_Azure Pipelines - Fatal编程技术网

&引用;在.gitmodules";中找不到子模块路径的url;Azure DevOps生成中出错

&引用;在.gitmodules";中找不到子模块路径的url;Azure DevOps生成中出错,git,azure,azure-pipelines,Git,Azure,Azure Pipelines,回购协议(“网站”)有一个子模块(“模板”)。子模块在repo的目录中引用。目标是使用Azure DevOps管道一起构建repo和子模块。但是,Azure DevOps构建引发以下错误: 致命:在.gitmodules中找不到子模块路径“/”的url [错误]Git子模块更新失败,退出代码:128 根据对.gitmodule文件的调整,也会引发此错误: 致命:在路径“/”的.gitmodules中找不到子模块映射。 这个问题与其他关于堆栈溢出的问题类似,但区别在于Azure DevOp

回购协议(“网站”)有一个子模块(“模板”)。子模块在repo的目录中引用。目标是使用Azure DevOps管道一起构建repo和子模块。但是,Azure DevOps构建引发以下错误:

  • 致命:在.gitmodules中找不到子模块路径“/”的url
  • [错误]Git子模块更新失败,退出代码:128
根据对
.gitmodule
文件的调整,也会引发此错误:

  • 致命:在路径“/”的.gitmodules中找不到子模块映射。
这个问题与其他关于堆栈溢出的问题类似,但区别在于Azure DevOps构建中的默认初始步骤是签出分支中的文件。因此不能首先运行脚本(比如
git rm--cached

“网站”和“模板”回购协议位于同一Azure DevOps项目中

我试过两种方法都没有成功。两者都基于Microsoft文档。这是因为我不清楚是否可以在不提供明确凭证的情况下将同一项目的子模块包括在回购协议中

  • 通过用户界面:

    • “清理选项”:“所有生成目录”
    • “签出子模块”:True
    • 分支包含一个.gitmodule文件:True
  • 通过PowerShell任务中的git命令:

  • 尝试了两种方法的变体:

    $AUTH=$(echo -n ":$(PAT)" | openssl base64 | tr -d '\n')
    git -c http.https://dev.azure.com/organization/project/_git/template.extraheader="AUTHORIZATION: basic $AUTH" clone https://dev.azure.com/organization/project/_git/template --no-checkout --branch master
    

    • 在没有.gitmodules文件的分支和有.gitmodules文件的分支上测试失败的构建
    • 在Bash和PowerShell(稍微调整)中测试的构建任务均未成功
    • 测试Azure DevOps repo URL的各种结构失败(如
      https://organization.visualstudio.com/project/_git/repo
      https://$(PAT)@organization.com.visualstudio.com:/project/\u git/template
      ,等等)
    尝试过的其他方法是上述方法的变体,包括在PowerShell任务中执行
    submodule update
    命令之前执行
    git submodule add
    ,在Bash任务中运行
    ls-lR
    ,以调查是否下载了子模块文件(即使文件丢失,构建任务有时也表示成功),还有无尽的.gitmodules文件变体

    如.gitmodules现在所示(未成功):

    [子模块“模板”]
    路径=/
    url=https://dev.azure.com/organization/project/_git/template
    
    变化包括:

    • [子模块/模板]
    • path=D:\\a\\1\\s\\\
    • path=$env:Build.sources目录/模板
    • url=../project/\u git/template
    …还有更多,再加上各种组合。没有一个是成功的


    我真的被困住了,很欣赏任何见解。谢谢。

    我不确定这是否有帮助,但对于重新定位的子模块(从存储库中的/my submodule移动到/src/my submodule),我遇到了相同的错误。通过执行git rm--force/my子模块
    ,提交并推送到远程解决了这个问题


    我发现使用
    git子模块status
    有助于本地检查子模块状态是否正确。我尝试
    git rm
    后,它停止报告错误“致命:在.gitmodules中找不到子模块路径“我的子模块”的url”

    根据搜索结果,[submodule“here”]中的值应该与路径的值相同。喜欢或者这是可选的。
    git -c http.https://dev.azure.com/organization/project/_git/template.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" submodule update --init --recursive
    
    [submodule "template"]
        path = <repo directory AKA "website">/<submodule directory AKA "template">
        url = https://dev.azure.com/organization/project/_git/template