VSTS Checkout子模块无法正常工作

时间:2017-08-24 14:33:08

标签: git azure-devops

我有2repos。 Repo1取决于repo2。

我尝试了以下步骤:

  1. Git clone repo1
  2. git submodule add repo2
  3. 将.gitmodules文件上传到repo1分支的VSTS
  4. 在VSTS构建的Get-sources步骤中,单击了签出子模块
  5. 添加了一个额外的步骤git submodule update --init。
  6. 子模块文件仍未进入代理程序。下面是我的.gitmodules [submodule" sm"] path = sm url = https://xxx.visualstudio.com/DefaultCollection/project/_git/sm

1 个答案:

答案 0 :(得分:2)

这是由您未提交并在repo1中推送var origString = 'thisisa'; var regexStr = origString.split('').join(' *'); db.collection.find({ field: { $regex: regexStr }); (repo2名称)引起的。

将repo2(sm)添加为repo1(sm)的子模块后,将创建两个需要提交的文件:

  • git submodule add <URL for repo2>:记录获取子模块仓库(repo2)的路径和来源。
  • .gitmodules(repo2 name):记录你在repo1中添加了子模块repo(repo2)的提交

这两个文件都是子模块所必需的。虽然您只在VSTS repo1中上传了sm,但即使您使用子模块克隆了repo1(在Get sources步骤中),git也找不到您添加子模块的提交。

正确的方法是提交并推送两个文件。

如果在添加子模块后没有对本地存储库进行其他更改,并且在repo1上没有其他更改,则可以使用提交和推送的方式:

.gitmodules