2012-01-08 117 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