git 如何在其他存储库中使用Azure DevOps存储库?是否有外部参考?

e3bfsja2  于 2023-10-14  发布在  Git
关注(0)|答案(1)|浏览(82)

我面临着一个应该相对简单的问题,但我很难找到解决方案。我在Azure DevOps中有一系列项目,每个项目都相当于我们的一个产品。为了清理我们的项目,我想将共享或通用组件移动到一个新的Azure DevOps项目中,并在其他项目中引用这个新项目。
当开发人员 checkout 一个项目时,我希望他们也能自动 checkout 共享项目,当他们提交更改时,它应该转到相应的项目。我相信有一个很好的指南,但我找不到。
在SVN中,我通过使用SVN Externals来实现这一点,我认为GitHub也有类似的东西,但我在Azure DevOps中没有找到外部项目引用的选项。是我瞎了还是我查错标签了?

fkvaft9z

fkvaft9z1#

当开发人员 checkout 项目时,我希望他们也能自动 checkout 共享项目,当他们提交更改时,
您可以考虑使用git submodule来实现此功能。
以下是在git中添加子模块的步骤:

git clone {clone URL}

git submodule add {repository url}

git add .

git commit -m "commit message"

git push

然后你会在项目中看到.gitmodules和reference repo name文件。
例如:

当你 checkout 仓库时,你可以使用以下选项:Azure Pipeline中的submodules: true

steps:
- checkout: self
  submodules: true

经典管道:

您可以使用以下命令将子模块 checkout 到本地机器:

git clone --recurse-submodules repourl

在这种情况下,它会自动 checkout self项目和shared项目。
另一方面,如果你正在使用YAML管道,你也可以考虑使用Repo资源:Check out multiple repositories in your pipeline

相关问题