Git 重新绑定到没有共同祖先的存储库

Git 重新绑定到没有共同祖先的存储库,git,rebase,Git,Rebase,我有很多基于旧版本的源代码库(通过git svn创建)的代码。USStream已经迁移到git,现在我需要将代码重新设置到新的存储库中 如何在存储库之间找到一个良好的共同点(我的意思是不需要手动挖掘存储库)?除非项目非常活跃,否则您可能可以使用提交时间戳将来自svn的父提交与新的git存储库匹配。如果您大致知道svn->git转换发生的时间,您应该能够在master/trunk上找到至少一个可以关联的提交。您可能会发现git log-S在这里很有用,因为它允许您查找引入或删除给定字符串的提交 然

我有很多基于旧版本的源代码库(通过git svn创建)的代码。USStream已经迁移到git,现在我需要将代码重新设置到新的存储库中


如何在存储库之间找到一个良好的共同点(我的意思是不需要手动挖掘存储库)?

除非项目非常活跃,否则您可能可以使用提交时间戳将来自svn的父提交与新的git存储库匹配。

如果您大致知道svn->git转换发生的时间,您应该能够在
master
/
trunk
上找到至少一个可以关联的提交。您可能会发现
git log-S
在这里很有用,因为它允许您查找引入或删除给定字符串的提交


然后,在基于subversion的克隆中,您可以找到代码的公共父级和当前主级。然后,您可以使用此父提交和相关提交之间的关系,在新的git存储库中找到相同的提交,这应该是一个合适的rebase候选者。

它非常活跃。另外,我开始认为原始svn存储库中的分支没有转移到新的git存储库中。所以我需要找到一个好的重新基准点(离分叉点不太远)。这不应该是一个评论,而不是一个答案吗?@Jubobs,这可能不是一个非常有用的答案,但它旨在回答这个问题。是的,这不起作用。问题是我的代码基于一个稳定的分支,有很多后端口修复。修复程序是从各地进行后端口的:-/如果您有一个共同的祖先,那么您也应该能够提取稳定分支的内容。然后,您至少在一次回购中获得了所有内容,并且可以使用标准git工具将更改放到您想要的地方。