2012-01-06 82 views
1

我們有遠程svn倉庫,我們希望它轉換爲git。 你能告訴我如何在Windows上做到這一點? 謝謝。如何將svn倉庫轉換爲Windows上的git

+1

可能重複的[有沒有像TortoiseSVN的git-svn的Windows客戶端?](http://stackoverflow.com/questions/894360/is-there-a-git-svn-windows-client-something-like -tortoisesvn),特別是這個答案是適用的:http://stackoverflow.com/a/1090761/19746 – Piskvor 2012-01-06 16:33:11

+0

據我可以判斷TortoiseGit只是git客戶端,對吧?我問過關於轉換svn倉庫到git倉庫。 – Oleg 2012-01-06 16:35:48

+0

@userwhatever:既然你顯然沒有點擊和/或閱讀第二個鏈接(nb:引用爲「特別適用」),讓我把它餵給你:「TortoiseGit(http://code.google.com/p/tortoisegit /)在版本0.8.1.0中添加了對git-svn的基本支持「。 *不*適用於什麼?請明確點。 – Piskvor 2012-01-06 16:38:11

回答

0

你可以使用git-svn這是一個可以讓svn倉庫轉換爲git倉庫的工具。請參閱git documentation瞭解更多信息。

+0

它在Windows上工作嗎? – Oleg 2012-01-06 16:37:28

+0

http://stackoverflow.com/a/351321/295756 yup :) – hoppa 2012-01-06 16:38:20

+0

對不起。我無法理解你。你能再解釋一下嗎? – Oleg 2012-01-06 16:41:26

0

在Windows上安裝的應用程序:

找出svn庫URL並複製

事情是這樣的:
enter image description here

調用TortoiseGit克隆對話框

右擊t點擊目標文件夾,例如D:\SVN\ToGit,並點擊Git Clone...
enter image description here

檢查From SVN repository複選框

enter image description here

如果您複製的URL,然後再調用克隆對話框,TortoiseGit將得到剪貼板粘貼複製網址它會放到你的URL文本字段中。所以,你不要自己貼。只要看看它是否正確。

如果您右鍵單擊目標文件夾,TortoiseGit也會爲您填寫Directory文本字段。另外,請看看是否它是你想要的。

所以,只需檢查From SVN repository複選框。

而且如果svn庫具有標準佈局,說樹幹,標籤,分支,你不需要做其他事情。

單擊OK按鈕,進入

然後,開始克隆一個SVN倉庫到Git倉庫。
事情是這樣的:

enter image description here

正如你所看到的,只是TortoiseGit正確使用的Git for Windows命令git svn clone克隆它。

git.exe svn clone "svn://svn.code.sf.net/p/tortoisesvn/code/" "D:\SVN\ToGit\tsvn" -T trunk -b branches -t 

所以,基本上,你可以去混帳擊/ CMD,並重新使用該命令行,也得到了同樣的結果。

注:如果你能看到r1r2r3 ...,你可以隨時停止克隆,然後再用相同的命令行恢復它。


克隆一個本地svn庫

有了TortoiseGit 2.4.4+

svn的本地路徑就複製到克隆對話框的URL。請參閱:
enter image description here
再次,檢查From SVN repository複選框

克隆:
enter image description here

TortoiseGit 2.4.4+將使用file:///協議克隆一個本地svn庫。


當你得到一個git倉庫後,你可以在那裏提交。並通過使用TortoiseGit ->SVN DCommit...將提交回到原始svn存儲庫,類似於svn commit

enter image description here

enter image description here

正如你所看到的,命令是git svn dcommit

如果起源svn庫有一些新的承諾(或多個)需要更新,你可以使用TortoiseGit ->SVN Rebase,以獲取SVN提交,然後合併/變基上的最新承諾。類似svn update

enter image description here

它採用git svn fetch然後使用git rebase合併/變基所取得的變化。

enter image description here

對於命令行,你可以只使用git svn rebase


閱讀Pro Git v2 - Chapter 9瞭解更多信息和示例。