将提交从git导入到现有的subversion中



我不确定这个问题以前是否被问过。那就帮我创建一个链接。

我有一个SVN存储库。其他人把它转换成git来做一些工作。现在,我想再次将他的提交导入SVN。那么我该怎么做呢?

标准Git方式

因此,基本上你必须联系SVN回购,SVN在那里提交工作。这是通过以下命令以标准方式完成的:

$ git svn rebase
$ git svn dcommit

您可以在Pro-Git书籍的Git和SVN章节中找到详细信息。

第一个命令将本地Git repo更新为SVN的HEAD修订版,并在其上本地播放迄今为止完成的所有提交(重新定基)。重要的是这将只修改您的本地回购

请注意,这可能需要一些额外的git魔术,这取决于两个回购分歧的程度(例如,合并冲突)。但如果你运气好的话,一切都会顺利的如果你不是一个Git魔术师,在做任何事情之前,先备份一下本地回购:-)

然后,第二个命令将所有本地修改提交回SVN repo(dcommit是"远程提交")。

替代解决方案

另一种方法是从本地修改创建一个补丁:

$ git format-patch ...

然后应用干净SVN回购的补丁,如果提交历史不重要,只需在一次提交中提交所有更改。如果您更喜欢SVN,这可能是更简单的方法。

最新更新