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

时间:2013-11-27 09:11:56

标签: git svn merge

我不确定此问题是否曾被提出过。然后帮我一个链接。

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

1 个答案:

答案 0 :(得分:0)

标准的Git方式

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

$ git svn rebase
$ git svn dcommit

您可以在Pro Git bookGit and SVN chapter

中找到详细信息

第一个命令将本地Git repo更新为SVN的HEAD修订版,并在其上播放到目前为止本地完成的所有提交( rebasing )。重要的是这将仅修改您的本地仓库!

请注意,这可能需要一些额外的git-magic,这取决于两个repo分歧的程度(例如,合并冲突)。但如果你很幸运,它会顺利进行。 如果您不是Git-magician,请在做任何事情之前对本地仓库进行全面备份: - )

然后第二个命令将所有本地修改提交回SVN仓库(dcommit是“远程提交”)。

替代解决方案

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

$ git format-patch ...

然后将修补程序应用于干净的SVN存储库,如果提交历史记录不重要,则只需在一次提交中提交所有更改。如果您更喜欢SVN,这可能是更简单的方法。