将现有git存储库推送到现有SVN存储库

时间:2012-01-08 15:52:57

标签: git svn git-svn

我被要求提供一个学校项目,通过将其推送到现有的 SVN存储库来提交我的工作。它是一个现有的存储库,其中已有一些文件。我不需要这些文件或以前的提交。

我一直在使用git存储库处理我的任务。我想将我的工作推送到SVN存储库而不会丢失任何历史记录。我怎么能这样做?

2 个答案:

答案 0 :(得分:7)

我会做一个混合。也就是说,首先使用git svn克隆svn。然后在这个新的存储库中,您merge从当前的git存储库中获取您的工作。

$ git svn clone http://svn.example.com/project/trunk
$ cd trunk
$ git checkout -b mywork
$ git pull /path/to/current/work/repository/.git master

现在,您已经在subversion中clonemywork分支中工作了。合并和推动的时间。

$ git checkout master
$ git merge mywork
$ git svn dcommit

享受!

答案 1 :(得分:0)

作为先决条件,您可以确保已将所有git更改应用或合并到master分支中。

然后您可以运行git-svn rebase来合并来自svn和最后git-svn dcommit的任何更新以提交更改。

这里有一个详细的解释 - cf - http://www.viget.com/extend/effectively-using-git-with-subversion/