2012-01-08 89 views
5

我一直在问一个学校项目被弹到现有 SVN仓库提交我的工作。它是一个现有的存储库,其中已有一些文件。我不需要这些文件或以前的提交。按现有git仓库到现有的SVN仓库

我一直在我的任务与我的一个Git仓库。我想将我的工作推向SVN存储库,而不会丢失任何历史记录。我怎样才能做到这一点?

+0

你能解释一下历史多一点?你使用'git svn clone'从SVN克隆吗? – fge 2012-01-08 15:59:13

+0

还没有。我不确定这是否是解决此问题的正确方法。到目前为止,我没有做任何修复它。我看到的所有指南都假设我有一个裸/新的SVN回购。 – 2012-01-08 16:34:33

+0

这是一种方式,你一定不会失去历史。但还需要了解更多信息:您的初始git是否会在某个时候导入SVN回购的副本?你说你在一个本地git仓库上工作,你是如何得到这些文件的? – fge 2012-01-08 16:37:39

回答

6

我会做一个组合。也就是说,首先用git svn克隆svn。然后在这个新的存储库中,您从当前的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 

现在,你有你的mywork分支在clone从Subversion的工作。时间合并和推动。

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

Enjoy!

+1

这完美地工作! – 2012-01-14 02:22:29

+1

我试过这个,但我所有的git历史被推送为一个svn提交,从而导致提交历史日志 – palaniraja 2013-01-07 06:45:19