我想获得有关最佳句柄和版本控制项目的一些建议,这些项目应具有以下结构:
从父项目(在许多项目中共享)中,我需要获取给定的目录结构和文件,即
.
|-- 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
或git subtrees
:
这行不通,因为我需要父项目中非常严格的目录和文件结构git remotes
,即两个git origins
,一个给父项目,一个给子项目:反对此解决方案的是,为了将项目部署到某个地方,我不能只运行git clone
,而必须手动设置多个git remote -v origin
。.gitignore
中:也许不是解决方案,这还不错,但我不知道实现该目标的工具。也许有一个工具可以通过some_paket_manager install path/to/git/repo==v.0.0.9
答案 0 :(得分:1)
只需进行普通合并,您唯一需要记住的是何时/如果您合并对子分支上完成的父文件的工作,以删除特定于子项目的文件并更改合并结果。只要您记录自己的实际工作,Git就能使事情保持正轨。 git diff --diff-filter=A --name-only @
将向您显示所有动态添加的文件,例如由无提交合并带来的任何结果,因此请进行无提交合并,将结果固定为仅包含所需的更改,然后提交并完成。一旦掌握了所需的修补程序后,您就可以自动化很多,但这并不总是删除每个新文件。