首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置git-svn

配置git-svn
EN

Stack Overflow用户
提问于 2013-11-15 21:09:12
回答 1查看 64关注 0票数 0

我是一个svn用户,需要将我的svn代码镜像到一个git存储库。git的用户将无法访问svn存储库,因此解决方案不能依赖于直接从svn签出代码作为某种外部存储库。

我正在尝试使用git- svn,以便我可以在svn中进行更改,然后更新它们并将它们同步到git。

我已经克隆了要同步svn代码的git,然后执行如下操作:

代码语言:javascript
复制
git svn clone svn+ssh://path/to/my/code --trunk my_module --prefix mirror/

我可以看到我的svn回购被克隆了。如果我尝试像这样切换到主干分支:

代码语言:javascript
复制
git checkout mirror/trunk

我被告知我在一个detached HEAD state中(这是一个适合我现在感觉的错误信息)。

因此,我的问题是,如何将本地签出的svn代码上传到远程git存储库。第二,我将如何对代码进行定期更新?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-15 21:38:45

mirror/trunk是git所称的远程跟踪分支--您不能在本地提交它,只能获取它来更新它,所以这就是为什么您看到了一些戏剧性的“分离头”消息。

在克隆之后,您可能已经在默认情况下跟踪它的本地分支master上了。要返回,只需运行git checkout master

要将代码从svn移动到git,首先要为您希望代码在其中结束的git存储库添加一个远程:

代码语言:javascript
复制
git remote add public git@...

我建议为svn工作创建一个新分支,这样git开发人员就不会对它做出承诺,并使事情复杂化:

代码语言:javascript
复制
git checkout -b svn-work

然后把它推到你刚刚设置的遥控器上:

代码语言:javascript
复制
git push public svn-work

要使git克隆保持最新,您需要运行(手动运行或由cron运行):

代码语言:javascript
复制
git svn rebase
git push public svn-work

如果你希望连接是双向的,事情会变得更加棘手。将work 从git移动到svn的命令非常简单:

代码语言:javascript
复制
git svn dcommit

..。但是,在您可以将哪些内容推入svn方面有很多警告;基本上,git用户需要确保该分支的历史保持线性,这不是一件简单的事情。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20010631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档