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子模块以替换复制和修改的文件_Git - Fatal编程技术网

创建git子模块以替换复制和修改的文件

创建git子模块以替换复制和修改的文件,git,Git,我有一个git项目,其中包含一些从另一个git项目复制的文件。现在我想把这些文件转换成git子模块。我能做到这一点而不丢失我已经做过的改变的历史吗? 谢谢 复制存储库,使用git filter branch消除未来子模块之外的所有内容。所以您只有描述该子目录中发生的事情的提交,并且目录层次结构看起来与将来的子模块完全相同 然后将此新存储库作为远程存储库添加到上游存储库并进行合并。Git会说一些关于没有共同祖先的事情,但它应该是有效的 完成所有这些操作后,请删除项目中的子目录,并将子模块放在相应的

我有一个git项目,其中包含一些从另一个git项目复制的文件。现在我想把这些文件转换成git子模块。我能做到这一点而不丢失我已经做过的改变的历史吗?
谢谢

复制存储库,使用
git filter branch
消除未来子模块之外的所有内容。所以您只有描述该子目录中发生的事情的提交,并且目录层次结构看起来与将来的子模块完全相同

然后将此新存储库作为远程存储库添加到上游存储库并进行合并。Git会说一些关于没有共同祖先的事情,但它应该是有效的


完成所有这些操作后,请删除项目中的子目录,并将子模块放在相应的位置(在一次提交中)。

您应该先将第二个repo添加为子模块,然后在子模块上进行自己的提交,其中可以包括删除文件。我相信您的问题的答案已在此处介绍:。