我一直在问一个学校项目被弹到现有 SVN仓库提交我的工作。它是一个现有的存储库,其中已有一些文件。我不需要这些文件或以前的提交。按现有git仓库到现有的SVN仓库
我一直在我的任务与我的一个Git仓库。我想将我的工作推向SVN存储库,而不会丢失任何历史记录。我怎样才能做到这一点?
我一直在问一个学校项目被弹到现有 SVN仓库提交我的工作。它是一个现有的存储库,其中已有一些文件。我不需要这些文件或以前的提交。按现有git仓库到现有的SVN仓库
我一直在我的任务与我的一个Git仓库。我想将我的工作推向SVN存储库,而不会丢失任何历史记录。我怎样才能做到这一点?
我会做一个组合。也就是说,首先用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!
这完美地工作! – 2012-01-14 02:22:29
我试过这个,但我所有的git历史被推送为一个svn提交,从而导致提交历史日志 – palaniraja 2013-01-07 06:45:19
可以作为一个先决条件确保您在Git中所有的改变都被应用,或合并到master
分支。
然后,您可以运行git-svn rebase
来合并svn的任何更新,最后再提交git-svn dcommit
以提交更改。
这里有一个详细的解释 - CF - http://www.viget.com/extend/effectively-using-git-with-subversion/
你能解释一下历史多一点?你使用'git svn clone'从SVN克隆吗? – fge 2012-01-08 15:59:13
还没有。我不确定这是否是解决此问题的正确方法。到目前为止,我没有做任何修复它。我看到的所有指南都假设我有一个裸/新的SVN回购。 – 2012-01-08 16:34:33
这是一种方式,你一定不会失去历史。但还需要了解更多信息:您的初始git是否会在某个时候导入SVN回购的副本?你说你在一个本地git仓库上工作,你是如何得到这些文件的? – fge 2012-01-08 16:37:39