将现有Git存储库推送到SVN

本文档详细介绍了如何将现有的Git存储库推送到新的SVN存储库,包括使用git-svn、SubGit和其他工具的方法。讨论了如何保持Git和SVN存储库同步,并提供了在出现问题时的解决方案。
摘要由CSDN通过智能技术生成

我一直在用Git完成所有工作并推送到GitHub。 我对软件和网站都非常满意,我不想在此时改变我的工作方式。

我的博士生顾问要求所有学生将他们的工作保存在大学托管的SVN存储库中。 我已经找到大量关于将现有SVN存储库下载到Git中的文档和教程,但没有关于将Git存储库推送到新的SVN存储库。 我希望必须有一些方法来实现这一点,结合使用git-svn和一个新的分支和变基和所有那些精彩的术语,但我是一个Git新手,并且对它们中的任何一个都没有信心。

然后我想在我选择时运行几个命令将提交推送到该SVN存储库。 我希望继续使用Git,只是拥有SVN存储库镜像Git中的内容。

如果这有任何不同,我将是唯一一个承诺进入SVN的人。


#1楼

我会使用SubGit在4个命令中提出一个非常简短的指令。 有关详细信息,请参阅此帖


#2楼

如果您不必使用任何特定的SVN并且您使用的是GitHub,则可以使用其SVN连接器。

更多信息在这里: 使用Subversion在GitHub上进行协作


#3楼

我想分享一个名为Scatter的WordPress社区中使用的很棒的工具

Git WordPress插件和一点理智分散

这使用户能够自动将他们的Git存储库发送到wordpress.org SVN。 理论上,此代码可以应用于任何SVN存储库。


#4楼

我需要将现有的Git存储库提交到空的SVN存储库。

这就是我设法做到这一点的方式:

$ git checkout master
$ git branch svn
$ git svn init -s --prefix=svn/ --username <user> https://path.to.repo.com/svn/project/
$ git checkout svn
$ git svn fetch
$ git reset --hard remotes/svn/trunk
$ git merge master
$ git svn dcommit

它没有问题。 我希望这可以帮助别人。

由于我必须使用不同的用户名授权给SVN存储库(我的origin使用私钥/公钥认证),我必须使用--username属性。


#5楼

如果您不想将您在Git中提交的每个提交提交到SVN存储库,该怎么办? 如果您只是想有选择地向管道发送提交怎么办? 好吧,我有一个更好的解决方案。

我保留了一个本地Git存储库,我所做的就是从SVN获取和合并。 这样我可以确保我包含与SVN相同的所有更改,但是我将提交历史与SVN完全分开。

然后我保留一个单独的SVN本地工作副本,该副本位于单独的文件夹中。 那是我做的那个提交回SVN,我只是使用SVN命令行实用程序。

当我准备将我的本地Git存储库状态提交给SVN时,我只需将整个文件复制到本地SVN工作副本中,然后使用SVN而不是Git从那里提交它。

这样我就不必做任何变基,因为变基就像自由基。


#6楼

我只想分享一些我接受的答案的经验。 我做了所有步骤,在我完成最后一步之前一切都很好:

git svn dcommit

$ git svn dcommit

在/usr/lib/perl5/vendor_perl/5.22/Git/SVN.pm第101行使用未初始化的值$ u代替(s ///)。

在连接(。)中使用未初始化的值$ u或在/usr/lib/perl5/vendor_perl/5.22/Git/SVN.pm第101行使用字符串.refs / remotes / origin / HEAD:' https//192.168.2.101/ svn / PROJECT_NAME '未找到'

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值