我一直在用Git做我所有的工作,并将其推送到GitHub。我对软件和网站都很满意,我不希望在这一点上改变我的工作实践。
我的博士导师要求所有学生将作业保存在学校托管的SVN存储库中。我发现了大量关于将现有的SVN存储库下拉到Git中的文档和教程,但没有关于将Git存储库推到新的SVN存储库中的文档和教程。我希望通过结合Git -svn、一个新的分支和rebase以及所有这些美妙的术语来实现这一点,但我是Git新手,对其中任何一个都没有信心。
然后,当我选择时,我希望只运行几个命令将提交推到SVN存储库。我希望继续使用Git,让SVN存储库镜像Git中的内容。
我将是唯一一个致力于SVN的人,如果这有什么不同的话。
下面是我们如何做到的:
在你的机器上克隆你的Git存储库。
打开.git/config并添加以下内容(来自维护Git存储库的只读SVN镜像):
[svn-remote "svn"]
url = https://your.svn.repo
fetch = :refs/remotes/git-svn
现在,在控制台窗口中输入以下内容:
git svn fetch svn
git checkout -b svn git-svn
git merge master
现在,如果它因为某种原因在这里中断了,输入这三行:
git checkout --theirs .
git add .
git commit -m "some message"
最后,您可以提交到SVN:
git svn dcommit
注意:我总是在事后丢弃那个文件夹。