如何从另一个 Git 存储库引用 Git monorepo 文件?
How can I reference a Git monorepo file from another Git repo?
我目前正在尝试将 SVN 存储库迁移到多个 Git 存储库中。原始的 SVN 存储库可以解释为一个单一存储库,因为它有几个独立的项目。由于 Git 标记,我想将这个 SVN monorepo 分解成一个 Git monorepo 和几个项目特定的 repos。这是我的场景:
我有一个 Git monorepo 调用 Libraries
。这个 monorepo 包含几个相对独立的单个文件库,因此需要单独标记。把它想象成
Libraries
math.h
math.c
file.h
file.c
...
由于我认为这是一个单一的仓库,我将按以下方式标记
math/1.0.0
math/1.1.0
file/1.0.0
file/1.1.0
现在进入项目特定的回购协议。
我有一个名为 Project 1
的存储库,它需要引用 Libraries
存储库中的各个文件。更复杂的是,我需要将这些库文件注入到 Project 1
内的特定目录中。类似于以下内容:
Project 1
headers
math.h // from math/1.0.0
file.h // from file/1.1.0
project.h // project specific file
source
math.c // from math/1.0.0
file.c // from file/1.1.0
project.c // project specific file
所以基本上我希望项目特定的回购从 monorepo 引用标记的单个文件,我需要将它们放在项目特定回购的非常特定的目录中。
我可以使用子模块实现吗?
子模块始终表示父存储库中的子文件夹。
如果您 OS 支持它,那么您可以为这些文件的符号链接版本:
- 特定文件夹
- 库子模块文件夹。
这是在假设您 没有太多 那些文件的符号链接。
我目前正在尝试将 SVN 存储库迁移到多个 Git 存储库中。原始的 SVN 存储库可以解释为一个单一存储库,因为它有几个独立的项目。由于 Git 标记,我想将这个 SVN monorepo 分解成一个 Git monorepo 和几个项目特定的 repos。这是我的场景:
我有一个 Git monorepo 调用 Libraries
。这个 monorepo 包含几个相对独立的单个文件库,因此需要单独标记。把它想象成
Libraries
math.h
math.c
file.h
file.c
...
由于我认为这是一个单一的仓库,我将按以下方式标记
math/1.0.0
math/1.1.0
file/1.0.0
file/1.1.0
现在进入项目特定的回购协议。
我有一个名为 Project 1
的存储库,它需要引用 Libraries
存储库中的各个文件。更复杂的是,我需要将这些库文件注入到 Project 1
内的特定目录中。类似于以下内容:
Project 1
headers
math.h // from math/1.0.0
file.h // from file/1.1.0
project.h // project specific file
source
math.c // from math/1.0.0
file.c // from file/1.1.0
project.c // project specific file
所以基本上我希望项目特定的回购从 monorepo 引用标记的单个文件,我需要将它们放在项目特定回购的非常特定的目录中。
我可以使用子模块实现吗?
子模块始终表示父存储库中的子文件夹。
如果您 OS 支持它,那么您可以为这些文件的符号链接版本:
- 特定文件夹
- 库子模块文件夹。
这是在假设您 没有太多 那些文件的符号链接。