Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git::将多模块项目拆分为2个模块并保留历史记录_Git_Git Submodules - Fatal编程技术网

Git::将多模块项目拆分为2个模块并保留历史记录

Git::将多模块项目拆分为2个模块并保留历史记录,git,git-submodules,Git,Git Submodules,目前我们有一个大型项目,由A、B、C、D、E等模块组成。这些模块位于github上的同一项目存储库中,但位于不同的文件夹中—每个模块都位于自己的文件夹中。项目由bt Maven管理,如果这很重要的话 最近,我们决定将项目分为两个不同的实例-P1和P2,因此它们将驻留在不同的存储库中P1应包含模块A、C、D,项目P2应包含模块B、E 所以现在我们认为我们至少有4种选择: 让项目保持现状。将相应的Git模块添加到P1和P2,这样每个模块都将指向父项目中的适当文件夹,这将确保保存历史记录(我认为至少

目前我们有一个大型项目,由A、B、C、D、E等模块组成。这些模块位于github上的同一项目存储库中,但位于不同的文件夹中—每个模块都位于自己的文件夹中。项目由bt Maven管理,如果这很重要的话

最近,我们决定将项目分为两个不同的实例-P1P2,因此它们将驻留在不同的存储库中P1应包含模块A、C、D,项目P2应包含模块B、E

所以现在我们认为我们至少有4种选择:

  • 让项目保持现状。将相应的Git模块添加到P1P2,这样每个模块都将指向父项目中的适当文件夹,这将确保保存历史记录(我认为至少如此)
  • P1创建存储库,将内容签入其中。然后将模块B、E移动到文件夹客户端,然后创建并将文件夹客户端作为模块导入到P2回购中。我不知道这是否可能,但它也应该保存历史
  • 将所有内容签入P1P2,然后从P1中删除模块B、E,并从P2中删除模块A、C、D。然后将P2作为git模块添加到P1。这应该保留历史,但实际上太多了-因此模块P2将包含从P1到发散时刻的所有内容。如果可能的话,我们希望避免这种情况
  • 最后,简单地把它作为新项目检查一下,从头开始

就我个人而言,我更喜欢第一种选择,但不确定这是否可行-例如,添加外部项目子文件夹的依赖项。

如果您想为每个子模块创建新的回购协议,那么您应该查看。使用
split
选项创建仅包含子文件夹历史记录的新分支。然后,您可以
将这些
推送到新的遥控器上,作为
主机
分支

如果你需要使用的细节,请联系我