如何在 Windows 上将 svn 存储库转换为 git

Ole*_*leg 7 svn windows git

我们有远程 svn 存储库,我们希望将其转换为 git。你能告诉我如何在 Windows 上做到这一点吗?谢谢。

Yue*_* Ho 7

在 Windows 上安装应用程序:

找出svn存储库URL并复制它

像这样的东西:
在此处输入图片说明

调用 TortoiseGit 克隆对话框

右键单击目标文件夹,例如D:\SVN\ToGit,然后单击Git Clone...
在此处输入图片说明

选中From SVN repository复选框

在此处输入图片说明

如果您先复制 URL,然后调用克隆对话框,TortoiseGit 将从剪贴板中获取复制的 URL 并将其粘贴到 URL 文本字段中。所以,你不要自己粘贴。只要看看它,看看它是否正确。

如果您右键单击目标文件夹,TortoiseGit 还会Directory为您填充文本字段。另外,看看它是否是你想要的。

所以,只需选中From SVN repository复选框。

如果 svn 存储库具有标准布局,例如主干、标签、分支,则您无需进一步执行任何操作。

单击“确定”按钮开始

然后,开始将 svn 存储库克隆到 git 存储库。
像这样的东西:

在此处输入图片说明

如您所见,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 
Run Code Online (Sandbox Code Playgroud)

因此,基本上,您可以使用Git Bash/CMD并重新使用该命令行,也可以获得相同的结果。

注意:如果您可以看到r1, r2, r3...,您可以随时停止克隆,并在稍后使用相同的命令行继续克隆。


克隆本地 svn 存储库

使用 TortoiseGit 2.4.4+

只需将 svn 本地路径复制到克隆对话框的 URL 中即可。看:
在此处输入图片说明
再次,选中From SVN repository复选框

克隆:
在此处输入图片说明

TortoiseGit 2.4.4+将使用file:///协议来克隆本地 svn 存储库。


获得 git 存储库后,您可以在那里提交。并通过使用将提交推回原始 svn 存储库TortoiseGit ->SVN DCommit...,例如svn commit.

在此处输入图片说明

在此处输入图片说明

如您所见,命令是git svn dcommit.

如果源 svn 存储库有一些新的提交需要更新,您可以使用TortoiseGit ->SVN Rebase获取 svn 提交,然后在最新的提交上合并/rebase。类似的东西svn update

在此处输入图片说明

它使用git svn fetch然后用于git rebase合并/rebase 获取的更改。

在此处输入图片说明

对于命令行,您可以只使用git svn rebase.


阅读Pro Git v2 - 第 9 章了解更多信息和示例。


hop*_*ppa 0

您可以使用 git-svn,这是一个可以将 svn 存储库转换为 git 存储库的工具。请参阅git 文档以获取更多信息。