如何对远程SVN仓库创建Git浅克隆(含文件及精简提交历史)
用Git实现SVN仓库的“浅克隆”(仅保留精简提交历史)
当然可以实现,git-svn工具支持通过指定SVN版本范围来限制克隆的历史记录,既能拿到最新的完整文件目录,又不用拉取十几年的全部提交历史。具体操作步骤如下:
先确定你想要保留的起始SVN版本号
你可以用SVN命令查看仓库最近的提交日志,比如想看看最近20次提交:svn log -l 20 <你的SVN仓库地址>
从中挑选一个合适的起始版本(比如最近一次重大迭代的版本号),或者直接用相对范围(比如最近100次提交)。执行带版本范围的git svn克隆命令
如果你的SVN仓库是标准的trunk/tags/branches结构:git svn clone -r <起始版本号>:HEAD <SVN仓库地址>/trunk 本地仓库名称
如果是单一目录的SVN仓库(没有trunk分支):git svn clone -r <起始版本号>:HEAD <SVN仓库地址> 本地仓库名称
要是不确定具体版本号,也可以用相对写法拉取最近N次提交,比如拉取最近100次:git svn clone -r HEAD~100:HEAD <SVN仓库地址>/trunk 本地仓库名称后续同步SVN更新
克隆完成后,本地就是一个正常的Git仓库,后续要拉取SVN上的新提交,直接运行:git svn rebase
就能把SVN的新提交同步到本地Git仓库里。
这种方式通过限制git-svn拉取的SVN版本范围,完美实现了你要的“浅克隆”效果,既节省了克隆时间,又能正常用Git进行本地开发。
内容的提问来源于stack exchange,提问作者Powet
相关产品推荐
相关产品推荐

