将Git历史记录移植到SVN分支上

6 svn git git-svn

情况
我有一个Git repo和一个SVN repo,它们都拥有相同的源代码但是提交历史记录不同.Git repo有很多很好的评论提交......而SVN repo有一些很大的提交,评论如"很多东西".这两个提交系列都遵循代码中所做的相同更改,并且大致相同.

期望的结果
我想切换到使用Git-SVN 而不会丢失当前Git仓库的详细历史记录.这应该通过将Git repo中的历史"嫁接"到项目的SVN分支(从我真正开始使用Git开始的分支)来完成.

为什么要这么做?(历史)
不久前我开始和Git一起玩.我开始在SVN控制下的项目中设置Git仓库.通过一点配置,我让Git和SVN在相同的源代码上并行工作.

这是我学习和玩Git的好方法,同时还有SVN的安全网.这是一个基本上有真实数据的沙箱.我没有时间真正学习 Git,但我真的很想修补它.这实际上是一个很好的方式来学习Git.

首先,在做了一些编辑之后,我会提交SVN,然后去Git ...然后和Git一起玩,知道我的更改是安全的SVN.很快我就更频繁地向Git提交而不是SVN ......现在,SVN承诺已经陷入了我有时需要做的烦人的苦差事.

在了解之间的区别时git revert,svn revert非常高兴我一直在检查SVN回购.假设两者的工作方式相同,我几乎失去了几周的工作.

我现在知道Git-SVN的荣耀,我正在其他几个项目中愉快地使用它.我完全意识到,当我开始时,我可能会失去我的Git回购,并且必须使用git-svn init...... 正确地设置一个新的...但是现在玩Git一段时间,我确信有一些方法可以攻击Git的历史进入SVN.

dav*_*000 2

做你想做的事可能很难。您可以通过以下方式将 git 存储库导入到 svn 中:http://code.google.com/p/support/wiki/ImportingFromGit,但我认为您会遇到冲突。您可以根据 git 存储库从头开始重新创建 SVN 存储库。

为了将来的参考,使用 Git 作为 SVN 客户端可能会更容易:

git-svn clone path/to/your/svn/repo
git-commit -a -m 'my small change'
vi some files to change.txt
git-commit -a -m 'another small change' 
git-svn dcommit # sends your little changes as individual svn commits
Run Code Online (Sandbox Code Playgroud)