假设我的回购结构目前类似于:
ROOT
--LanguageA
----Project A-LangA
----Project B-LangA
----Project C-LangA
--Language B
----Project A-LangB
------SharedFile-1
------SharedFile-2
------SharedFile-3
----Project B-LangB
------SharedFile-1
------SharedFile-2
------SharedFile-3
----Project C-LangB
------SharedFile-1
------SharedFile-2
------SharedFile-3
当前,如果我需要更新SharedFile-1
,则需要在每个Project
目录中进行更新。是否可以使用git submodule
或git subtree
来创建类似的内容:
ROOT
--LanguageA
----Project A-LangA
----Project B-LangA
----Project C-LangA
--Language B
----Project A-LangB
------SharedFile-1 (auto-updating clone)
------SharedFile-2 (auto-updating clone)
------SharedFile-3 (auto-updating clone)
----Project B-LangB
------SharedFile-1 (auto-updating clone)
------SharedFile-2 (auto-updating clone)
------SharedFile-3 (auto-updating clone)
----Project C-LangB
------SharedFile-1 (auto-updating clone)
------SharedFile-2 (auto-updating clone)
------SharedFile-3 (auto-updating clone)
----Language B Shared Files
------SharedFile-1
------SharedFile-2
------SharedFile-3
......这样,当用户克隆整个存储库时,我只需要对ROOT/Language B/Language B Shared Files/*
进行编辑,并自动更新每个ROOT/Language B/Project *
目录中的更改?
我知道我可以将其分解为一个单独的回购协议。但是是否可以具有上述结构?我也知道我可以创建一个执行此操作的自动化脚本,但是我正在尝试尽可能使用上述结构。