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_Merge - Fatal编程技术网

Git 在不丢失历史记录的情况下,将独立项目合并到更大的项目中

Git 在不丢失历史记录的情况下,将独立项目合并到更大的项目中,git,merge,Git,Merge,我有一个独立的项目,CPAN模块。它还活着。通常,MakeMaker将发布,Perl将把这个tarball集成到它的存储库中。但有时Perl会更改MakeMaker的副本,并且该更改必须进入CPAN存储库。Perl中MakeMaker的历史也比github中的MakeMaker早 我希望有一个存储库,而不是有两个存储库。也就是说,只需直接提交到perl5.git/cpan/ExtUtils-MakeMaker。这解决了发布集成问题。问题变成了保存历史,代码考古学对MakeMaker非常重要。gi

我有一个独立的项目,CPAN模块。它还活着。通常,MakeMaker将发布,Perl将把这个tarball集成到它的存储库中。但有时Perl会更改MakeMaker的副本,并且该更改必须进入CPAN存储库。Perl中MakeMaker的历史也比github中的MakeMaker早

我希望有一个存储库,而不是有两个存储库。也就是说,只需直接提交到perl5.git/cpan/ExtUtils-MakeMaker。这解决了发布集成问题。问题变成了保存历史,代码考古学对MakeMaker非常重要。github存储库拥有MakeMaker的大部分历史。git有自己的MakeMaker历史,也很独特和有趣。这两段历史是重叠的

问题是:如何将github MakeMaker存储库合并到Perl存储库中,同时仍保留历史供考古使用?最好是一个解决方案,不涉及手动苦干通过个别的变化有数千


谢谢。

检查您的存储库是否允许您标记和分支代码,并检查它们到底是什么,它们肯定会解决您的问题-


注意。

检查您的存储库是否允许您标记和分支代码,并检查它们到底是什么,它们肯定会解决您的问题-


关于。

您可以使用子模块,或者您可以在第三方git子树工具的帮助下使用子树合并。

您可以使用子模块,或者您可以在第三方git子树工具的帮助下使用子树合并。

注意:自2012年6月11日git1.7.11起,有第三个选项与之前的,现在合并到主线git中


这样,您可以将一个回购协议与其历史记录合并到另一个回购协议中,保留稍后提取其历史记录的选项,而不是子树合并。

注意:自2012年6月1.7.11日以来,有第三个选项与以前的截止日期合并,现在合并到主线git中


这样,您可以将一个回购协议及其历史记录合并到另一个回购协议中,保留稍后提取其历史记录的选项,而不是子树合并。

Git当然允许标记和分支,但我不确定这与实际问题的关系。Git当然允许标记和分支,但我不确定这与实际问题的关系。子模块如何保存这两个历史?@Schwern:我不理解这个问题。在子模块的情况下,您有松耦合,子模块的历史记录在其存储库的克隆中,耦合的历史记录在超级模块中。在子树合并的情况下,您与连接的历史紧密耦合。子树合并确实解决了这个问题。看看一个子模块是如何保存这两个历史的?@Schwern:我不明白这个问题。在子模块的情况下,您有松耦合,子模块的历史记录在其存储库的克隆中,耦合的历史记录在超级模块中。在子树合并的情况下,您与连接的历史紧密耦合。子树合并确实解决了这个问题。看见