我想获得一些建议来最好地处理和版本控制项目,这些项目表现出以下结构:
从父项目(在许多项目之间共享),我需要获取给定的目录结构和文件,即
.
|-- modules/
| |-- file_1_parent.py
|
|-- controllers/
|-- file_2_parent.py
从这个父项目派生了几个子依赖项,它们将文件添加到目录中。
然后情况可能如下所示(文件/目录所属的项目名称在括号中)
.
|-- modules/ (parent project)
| |-- file_1_parent.py (parent project)
| |-- file_1_child.py (child project)
|
|-- controllers/ (parent project)
|-- file_2_parent.py (parent project)
|-- file_2_child.py (child project)
具体来说,在我的例子中,父项目是 web2py/django 项目,我想从中派生几个子项目。
现在的问题是,
- 如何对每个项目进行版本控制?
- 我应该分别为父项目和子项目创建一个存储库吗?
- 我应该将父项目视为某种包/库吗?
我考虑了以下方法:
- 使用
git submodule
orgit subtrees
:这不起作用,因为我需要来自父项目的非常严格的目录和文件结构 - 本地项目中的多个
git remotes
,即两个git origins
,一个给父项目,一个给子项目:反对这个解决方案的是,为了在某个地方部署项目,我不能简单地运行git clone
,而是必须手动设置 multiplegit remote -v origin
。 - 将父项目视为一个库,我通过数据包管理器安装它,然后对子存储库中安装的文件进行版本控制或将它们放入
.gitignore
:也许不是解决方案,这不是那么糟糕,但我不知道实现这一目标的工具。也许有一个工具可以通过一些命令从 github repo 安装给定版本,比如some_paket_manager install path/to/git/repo==v.0.0.9
- 从父项目复制和粘贴文件:我试图避免手动工作。