2016-06-28 68 views
0

因此,我搜索了一下,发现了一些我应该工作但仍然没有的东西(这可能是我在做有些不对劲)如何在没有共同祖先的情况下将提交从一个git repo移动到另一个

这里是为了

1)我们有一个SVN仓库

2)我转换SVN回购协议的Git的故事,但没有使用--stdlayout参数(错误被制作出来),所以并没有得到所有分支的良好历史记录,并且它只是有一个大的分支文件夹。所有的提交都在那里,但分支和合并的历史没有跟随。我们把trunk文件夹的内容(最近的代码),移动到repo的根目录,并删除了其他所有内容。如果需要,我们可以回头查看其他内容,但看不到合适的分支历史记录。

3)我们做了吨的新的Git回购

4)我们决定,我们希望能够标注一个文件恢复到它的开始是不是我们可以在做更改代码(枝)这一点

5)我采取了SVN回购协议,并将其重新转换为Git,并且此次使用了--stdlayout命令,因此我们获得了适当的历史记录。

所以现在的挑战是从我们最初转换到新的回购以来,我们完成了所有提交。所以一个回购在那段时间之前就有过垃圾历史,在那段时间之后我们所有的新变化,另一个回购在那个时间之前有很好的历史,但是从此以后就没有了。

到目前为止,我已经新鲜克隆第二回购,并添加了所有更改作为远程旧回购。我试图重建,创建和应用修补程序,执行一个gaft,并使用git-reset。我的所有尝试都没有成功,但我可能做错了一些事情。

在初始移动之前和之后仍然保持分支和合并历史的同时,实现此目的的最简单方法是什么?

非常感谢你们的帮助,对于我缺乏知识感到抱歉。这应该从来没有成为一个问题。

不知道这是否有帮助,但这里是我的树中原始转换(蓝色)发生的位置以及它与新回购(粉红色)对齐的位置。我基本上只想在初始转换后将第一次提交的父代更改为第二次转换的最后一次提交(请参见图片)。 Visual Tree

回答

0

您可以从旧的存储库中的差异/补丁文件和应用相同的DIFF到新存储库

+0

谢谢。我能够使用“git format-patch”和“git am”成功获得我们使用的每个分支的提交,但没有分支和合并记录。它会工作,但并不理想。 – Alex

相关问题