Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
如何将代码同步到Git和SVN存储库?_Git_Svn_Version Control - Fatal编程技术网

如何将代码同步到Git和SVN存储库?

如何将代码同步到Git和SVN存储库?,git,svn,version-control,Git,Svn,Version Control,在工作中,我拥有一个相对较小的软件工具(约25k行java),我一直在使用Git repo对其进行修订。现在这个工具将成为一个更大的包的一部分,这个包由其他人在一个完全不同的环境中维护,它使用SVN。但我仍然希望保持我的Git回购协议的灵活性,这样我就不会被更大的包的发布时间表所束缚 是否有一种方法可以使本地区域与两个版本控制系统保持同步,从而避免将.svn文件上载到git,并将.git文件上载到svn?理想情况下,我希望继续提交对Git的小编辑,然后在请求时定期推送到SVN,所有这些都来自同一

在工作中,我拥有一个相对较小的软件工具(约25k行java),我一直在使用Git repo对其进行修订。现在这个工具将成为一个更大的包的一部分,这个包由其他人在一个完全不同的环境中维护,它使用SVN。但我仍然希望保持我的Git回购协议的灵活性,这样我就不会被更大的包的发布时间表所束缚


是否有一种方法可以使本地区域与两个版本控制系统保持同步,从而避免将
.svn
文件上载到git,并将
.git
文件上载到svn?理想情况下,我希望继续提交对Git的小编辑,然后在请求时定期推送到SVN,所有这些都来自同一个目录。还是我注定要在系统的两个目录之间复制文件?

您最好的选择可能是使用。这允许您将
git
用作Subversion存储库的前端

最简单的方法是:

  • 为软件创建SVN存储库(或使用现有的回购协议)
  • 将软件提交给SVN一次(作为一组文件夹,使用
    SVN提交
  • 使用
    git svn clone
    将软件作为git存储库获取
缺点是您丢失了迄今为止创建的git历史记录

如果您想保留git的历史记录,事情会变得更复杂一些(因为SVN不能代表git历史的某些方面,尤其是分支)。基本上你会:

  • 创建一个空的SVN回购
  • 使用
    git svn clone
  • 将现有git提交导入此git repo
  • 将它们推送到SVN回购(
    git SVN dcommit

“导入您现有的git提交”是事情变得棘手的地方(例如,您必须在
git svn
repo中的初始提交上重新设置基址,然后
git svn dcommit
将再次重新设置基址,这将对合并提交造成严重破坏。但是,如果您可以忍受例如没有完全忠实地表示分支的情况,您应该会很好。

使用git svn…通过谷歌搜索查看帮助文档