如何将SVN中的提交重播到git

时间:2019-07-09 14:25:45

标签: git svn merge

我需要重新创建一些从一个git存储库到似乎无关的提交。情况如下:

存储库1是一个git-svn存储库,其中包含我想重播到另一个的提交。从内容上讲,这是自我们标记版本以来在support分支中创建的补丁的集合。

存储库2是一个普通的git存储库,它是从我们旧的svn存储库(与repo 1相同)创建的,并且还包含带有标记的发行版git标签

最终,我想实现的是从旧的svn到新的git repo中重新创建补丁分支,并可以访问各个提交。我需要做的是从标签创建一个分支(简单),然后将当前在svn / git-svn世界中的所有提交重放到此补丁分支中。

到目前为止,我在原始标签的当前git repo中创建了标签,此外,我在其旁边有git-svn repo并将git-svn repo添加为远程标签。然后,我创建了另一个从该远程结帐的分支。 (我来自Easiest way to replay commits on new git repository

天真地,我以为可以合并两个分支,但这似乎行不通。首先,git merge不想合并无关的历史记录,如果我让它忽略这一点,将会发生的情况是,整个文件或多或少都被复制了,而所有文件都标记为冲突。

因此,最终的问题是,我可以将这些提交转移吗?由于我们正在谈论100多个提交,因此我不想手动执行此操作。

1 个答案:

答案 0 :(得分:0)

该解决方案实际上在Easiest way to replay commits on new git repository

中有详细描述

基本上,将旧的仓库添加为远程仓库。将其检出为新分支,将该分支重新建立在应该提交提交的新分支上。签出新分支,并将其与重新建立分支的分支合并。

还要感谢@eftshift0向同一方向进行提示。