如何将Git项目与子项目迁移为一个项目
||
我现在有一些项目位于单独的Git存储库中。同样,它们位于单独的Eclipse项目中(因为由于m2插件中的错误,我很长时间无法使用Maven插件使用父项目)。现在可以了。
因此,我将Maven中的项目组合在一起,创建了一个基础pom项目,并将其作为其他项目的父项。然后,我嵌套了子项目。
当我将基础项目提交为git项目时,即使根目录中没有.gitmodules文件,它也决定子目录是子模块。
看起来完成此操作的唯一方法是丢失正在组合的项目中的所有历史记录。
只是要非常清楚,目前有:
Project A (repo A)
Project B (repo B)
Project C (repo C)
我想要的是:
New Base Project D (repo D)
/Project A
/Project B
/Project C
我宁愿不丢失任何历史记录,但是如果有必要,我想我可以将以前的版本放到阁楼上。我不认为我想要子模块,因为这些子模块似乎适合包含不受您控制的远程存储库。
将解决方案变成了bash脚本。它假定您要添加的子目录与父目录位于同一级别的子目录中。这里是:
#! /bin/bash
git remote add -f $1 ../$1
git merge -s ours --no-commit $1/master
git read-tree --prefix=$1 -u $1/master
git commit -m \"Added project $1\"
Git很棒。
没有找到相关结果
已邀请:
3 个回复
磋判粗惊
和
合并到一个新项目
中:
合并到“ alpha”项目中...
以相同的方式合并到“ beta”项目中。如果更改是永久性的,则可以在新项目中删除alpha遥控器。如果alpha仓库中仍在开发中,那么您不仅可以保留历史记录,而且还可以进行新的更改。 所有历史记录仍将存在,并且项目将在子目录中。我在家用计算机上将其用于“死项目存储库”-一个庞大的git存储库,其中包含我曾经处理过的所有内容,这些内容要么已废弃,要么不足以容纳其自己的存储库。
晤默报
逝媳蘑贩茄