首页 > 解决方案 > 将存储库镜像到另一个存储库中的子文件夹

问题描述

假设我在 gitlab 中有存储库“A”。开发人员通常会将代码更改推送到存储库“A”。我在同一个 gitlab 中有另一个存储库“B”。我在存储库“B”中有子文件夹“C”。每当开发人员将更改提交到存储库“A”时,我需要反映存储库“B”中子文件夹“C”中的确切代码更改'。这在 gitlab 中可行吗?

标签: gitgitlabgit-mergegit-push

解决方案


您需要使用 git 子模块。

  1. 在 repo B 的根目录中创建 .gitmodules 文件
[submodule "Nameofmodule"]
    path = subfolderC
    url = https://gitlab.com/yourrepo (you can also use ssh here)
  1. 初始化你的子模块

git submodule init

  1. 从 repo A “获取”数据

git submodule update

之后,您将在文件夹 C 中看到 Repo A 的内容

我建议您阅读文档https://git-scm.com/book/en/v2/Git-Tools-Submodules

注意,如果你要使用 Gitlab CI,配置有点不同

[submodule "project"]
  path = project
  url = ../../group/project.git

原因和说明在这里https://docs.gitlab.com/ee/ci/git_submodules.html


推荐阅读