Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SVN回购作为分支导入现有Git回购_Svn_Git_Git Svn - Fatal编程技术网

将SVN回购作为分支导入现有Git回购

将SVN回购作为分支导入现有Git回购,svn,git,git-svn,Svn,Git,Git Svn,我目前有一个关于谷歌代码的项目,我想把它整合到Github的项目中 问题是SVN项目本质上只是github上较大项目的一个文件夹,所以我不认为我可以使用git SVN来实现这一点 我假设我可以使用git svn来克隆项目,但是我不确定如何将svn项目正确地移植到现有的git项目上 理想的结果是将SVN历史记录放入Git分支(而不是将其移植到master) 能够将数据提交回svn并不是真正必要的(如果有帮助的话) 解决 最后,我只使用了_doug的建议,但做了一些小修改: 1:我使用了来自的建议来

我目前有一个关于谷歌代码的项目,我想把它整合到Github的项目中

问题是SVN项目本质上只是github上较大项目的一个文件夹,所以我不认为我可以使用git SVN来实现这一点

我假设我可以使用git svn来克隆项目,但是我不确定如何将svn项目正确地移植到现有的git项目上

理想的结果是将SVN历史记录放入Git分支(而不是将其移植到master)

能够将数据提交回svn并不是真正必要的(如果有帮助的话)

解决

最后,我只使用了_doug的建议,但做了一些小修改:

1:我使用了来自的建议来添加googlecode作为远程参考

2:我为我想要的远程分支创建了一个新的主分支

3:我用过

git merge-s ours——不提交googlecode远程

合并

4:然后我用了

git读取树——前缀=folder1/folder2/-u谷歌代码远程

读取合并历史记录并重新设置所需子文件夹的基础


希望这能帮助处于类似情况的人;)

我以前没用过,但听起来像是你想要的。有更多关于如何使用它的细节

基本上,您可以将SVN存储库添加为远程存储库,然后使用
git read tree
命令将其“移植”为纯git存储库的子目录。根据您希望历史记录显示的方式,您可以执行
git merge-s子树
将其合并到纯git分支中(git svn)或者您可以按照第二个链接中的步骤添加
--squash
--no commit
标志,并使合并显示为纯git分支中的单个提交

这些指令假定远程设备也是git repo。如果本地回购协议是用git而不是git svn创建的,那么不确定它的效果如何。这有点麻烦,但要制作一个只反映git中SVN回购的中间存储库。通过这种方式,您可以创建svn repo的git svn镜像,并将其添加为远程,上面的说明应该按照所述工作