【发布时间】:2013-11-27 09:11:55
【问题描述】:
我不确定以前是否有人问过这个问题。然后帮我提供一个链接。
我有一个 SVN 存储库。其他人将其转换为 git 来做一些工作。现在,我想再次将他的提交导入 SVN。那么我该怎么做呢?
【问题讨论】:
我不确定以前是否有人问过这个问题。然后帮我提供一个链接。
我有一个 SVN 存储库。其他人将其转换为 git 来做一些工作。现在,我想再次将他的提交导入 SVN。那么我该怎么做呢?
【问题讨论】:
所以基本上你必须联系 SVN repo 并且 SVN 在那里提交工作。这是通过以下命令以标准方式完成的:
$ git svn rebase
$ git svn dcommit
您可以在Pro Git book的Git and SVN chapter中找到详细信息。
第一个命令将本地 Git 存储库更新为 SVN 的 HEAD 版本,并在其上播放迄今为止在本地完成的所有提交(rebaseing)。 这将只修改您的本地存储库,这一点很重要!
请注意,这可能需要一些额外的 git-magic,这取决于两个 repo 分歧的程度(例如,合并冲突)。但如果你幸运的话,一切都会顺利进行。 如果您不是 Git 魔术师,请在执行任何操作之前对本地存储库进行完整备份 :-)
然后第二个命令将所有本地修改提交回您的 SVN 存储库(dcommit 是 “远程提交”)。
另一种方法是从本地修改创建补丁:
$ git format-patch ...
然后为干净的 SVN 存储库应用补丁,如果提交历史不重要,只需在一次提交中提交所有更改。如果您更喜欢 SVN,这可能是更简单的方法。
【讨论】: