我可以与同一git repo中的其他子目录共享一个子目录吗?
假设我的回购结构目前类似于:我可以与同一git repo中的其他子目录共享一个子目录吗?,git,github,git-submodules,git-subtree,Git,Github,Git Submodules,Git Subtree,假设我的回购结构目前类似于: 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 ------Shar
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
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
目前,如果我需要更新SharedFile-1
,我需要在每个项目
目录中进行更新。是否可以使用git子模块
或git子树
创建如下内容:
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
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
…这样,当用户克隆整个repo时,我只需编辑ROOT/Language B/Language B Shared Files/*
,并在每个ROOT/Language B/Project*
目录中自动更新更改
我知道我可以把它拆分成单独的回购协议。但是,有可能有上述结构吗?我也知道我可以创建一个自动化脚本来实现这一点,但我正在尽可能地使用上述结构。您的贡献者是否在Windows上?Git支持符号链接,但大多数都支持,但不是全部。需要跨平台。我正在考虑使用预提交挂钩来复制文件并提交它们。您的贡献者中有人在Windows上吗?Git支持符号链接,但大多数都支持,但不是全部。需要跨平台。我正在考虑使用预提交挂钩来复制文件并提交它们