[英]How can I import part of an SVN repo into an existing git repo, retaining history?
我有一个旧的SVN储存库,其中包含我想导入到现有 git储存库中的文件的子目录,并保留历史记录。 如何才能做到这一点?
假设我有现有的SVN布局:
file:///svn
trunk
foo
bar
branches
以及以下git布局:
file:///git
*master
baz
qux
我想将svn:///file/trunk/foo
导入git,这样我得到以下结果:
file:///git
*master
foo
baz
qux
我发现的解决方案需要使用git-subtree,它是git contrib的一部分,或者在某些情况下使用默认的git安装(例如git Debian软件包1.9和更高版本)。
使用git-svn克隆SVN仓库:
git svn clone -r 1540:HEAD \\ --authors-file=authors.txt \\ https://svn.host.com/repos/trunk/foo foo
然后在您的主仓库中,创建一个新分支(我想是可选的),并使用git-subtree导入新的部分仓库:
git checkout -b foo git subtree add --prefix foo /path/to/foo master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.