我被要求提供一个学校项目,通过将其推送到现有的 SVN存储库来提交我的工作。它是一个现有的存储库,其中已有一些文件。我不需要这些文件或以前的提交。
我一直在使用git存储库处理我的任务。我想将我的工作推送到SVN存储库而不会丢失任何历史记录。我怎么能这样做?
答案 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中clone的mywork
分支中工作了。合并和推动的时间。
$ 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/