将SVN存储库的一部分导入现有Git repo
我有一个现有的SVN回购协议,我想将其中的一部分,连同历史一起导入现有的Git回购协议。有人能给我一个关于执行此操作所需命令的高级概述吗 总结:将SVN存储库的一部分导入现有Git repo,git,svn,version-control,git-svn,svn2git,Git,Svn,Version Control,Git Svn,Svn2git,我有一个现有的SVN回购协议,我想将其中的一部分,连同历史一起导入现有的Git回购协议。有人能给我一个关于执行此操作所需命令的高级概述吗 总结: 我想移动现有SVN存储库中的一些子目录(但不是repo的其余部分) 我有一个现有的Git repo,我想将这些目录导入其中 我只想保留我移动的子目录的历史记录(而不是其他任何内容) 我有一种感觉,这涉及到git过滤器分支和一些奇怪的合并。任何帮助都将不胜感激。结果很复杂,但以下是我所做的 首先准备SVN存储库。后来我打算从SVN中删除这些文件,因此
- 我想移动现有SVN存储库中的一些子目录(但不是repo的其余部分)
- 我有一个现有的Git repo,我想将这些目录导入其中
- 我只想保留我移动的子目录的历史记录(而不是其他任何内容)
我有一种感觉,这涉及到git过滤器分支和一些奇怪的合并。任何帮助都将不胜感激。结果很复杂,但以下是我所做的
过滤器分支
更容易)git SVN clone签出了SVN repohttp://path/to/svnrepo
。这将创建svn repo的git版本过滤器分支--subdirectory filter
来过滤我想要的目录,并从SVN中删除我不想保留在git中的其他内容的历史记录。您还可以使用新功能git子树
,如中所示git远程添加git项目
,然后执行git拉动
我认为导入完整的存储库可能更容易,然后使用
git filter branch
删除不想保留的内容。我不确定是否可以仅以这种方式导入svn
存储库的一部分,即使可以,也不太可能是简单的…您可以使用svnadmin dump
转储Subversion存储库,然后使用过滤掉你不想要的部分。对我有用,但使用git merge——允许不相关的历史源代码/主代码合并存储库(从这里找到)