Git:一个文件夹中有多个子树/子模块?
在本地计算机上,我有几个项目导入的常用脚本,例如:Git:一个文件夹中有多个子树/子模块?,git,git-submodules,git-subtree,Git,Git Submodules,Git Subtree,在本地计算机上,我有几个项目导入的常用脚本,例如: /common/ .git/ scripts/ common1.py /projectA/ .git/ scripts/ A1.py (imports from common1.py) /projectB/ .git/ scripts/ B1.py (imports from common1.py) 通用脚本和项目在单独的git回购中进行跟踪。这对我的个人工作很好,因为我可以克隆所有需要的回购协
/common/
.git/
scripts/
common1.py
/projectA/
.git/
scripts/
A1.py (imports from common1.py)
/projectB/
.git/
scripts/
B1.py (imports from common1.py)
通用脚本和项目在单独的git回购中进行跟踪。这对我的个人工作很好,因为我可以克隆所有需要的回购协议。当通过git公开项目时,我可以通过子树或子模块包含公共文件(对公共文件的引用在B1.py中更新):
现在我想组装一个超级项目(目标):
通过子树和子模块,我能够实现:
/projectC/
.git/
scripts/
common/
common1.py
projectA_scripts/ (via subtree)
A1.py
common/ (via subtree w/in projectA)
common1.py
projectB_scripts/ (via subtree)
B1.py
common/ (via subtree w/in projectB)
common1.py
C1.py
然而,这是相当冗余的,通过sub-x链传播更改将是乏味的。如何实现上述目标目录结构,同时保留对项目和公共文件进行更新的能力?不管怎样,我不希望需要将子树/子模块更改推到上游
不需要在两个操作系统上进行独立配置的跨平台(Windows UNIX)解决方案的额外好处。基于Git的解决方案更可取。< P>因为你不必把这些子树/子模块内容推回去,你可以考虑:
- 通过对这些子树/子模块的每个文件进行符号链接
- 或使用,应允许“”
/projectC/
.git/
scripts/
common1.py
A1.py
B1.py
/projectC/
.git/
scripts/
common/
common1.py
projectA_scripts/ (via subtree)
A1.py
common/ (via subtree w/in projectA)
common1.py
projectB_scripts/ (via subtree)
B1.py
common/ (via subtree w/in projectB)
common1.py
C1.py