我一直在用Git做我所有的工作,并将其推送到GitHub。我对软件和网站都很满意,我不希望在这一点上改变我的工作实践。

我的博士导师要求所有学生将作业保存在学校托管的SVN存储库中。我发现了大量关于将现有的SVN存储库下拉到Git中的文档和教程,但没有关于将Git存储库推到新的SVN存储库中的文档和教程。我希望通过结合Git -svn、一个新的分支和rebase以及所有这些美妙的术语来实现这一点,但我是Git新手,对其中任何一个都没有信心。

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

我将是唯一一个致力于SVN的人,如果这有什么不同的话。


当前回答

如果您希望继续使用Git作为您的主存储库,并且只需要不时地将修订“导出”到SVN,那么您可以使用Tailor来保持SVN存储库的同步。它可以在不同的源代码控制系统之间复制修订,并将您在Git中所做的更改更新到SVN。

我没有尝试过git到SVN的转换,但是对于一个SVN -> SVN示例,请参阅这个答案。

其他回答

在我的例子中,我必须从SVN启动一个干净的项目

$ Project> git svn init protocol://path/to/repo -s
$ Project> git svn fetch

添加你所有的项目资源…

$ Project> git add .
$ Project> git commit -m "Importing project sources"
$ Project> git svn dcommit

我建议使用SubGit用4个命令编写一个非常短的指令。详情请看这篇文章。

您可以创建一个新的SVN存储库。导出您的Git项目(充实. Git文件)。将其添加到SVN存储库中(使用Git中现有的内容初始化存储库)。 然后使用在新的Git项目中导入SVN存储库的说明。

但是这会丢失之前的Git历史记录。

如果您希望继续使用Git作为您的主存储库,并且只需要不时地将修订“导出”到SVN,那么您可以使用Tailor来保持SVN存储库的同步。它可以在不同的源代码控制系统之间复制修订,并将您在Git中所做的更改更新到SVN。

我没有尝试过git到SVN的转换,但是对于一个SVN -> SVN示例,请参阅这个答案。

我想分享一个在WordPress社区中使用的很棒的工具,叫做Scatter

Git WordPress插件和一点理智的分散

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