切换svn远程分支时维护git本地分支

时间:2010-09-30 21:02:38

标签: svn git

我一直在使用git-svn快乐地工作,分支任何东西,改变和拒绝干线,然后决定我们将开始从分支而不是干线开始工作的权力。我的问题是如何从主服务器生成的分支机构,这些分支机构正在跟踪主干到rebase / merge到现在正在跟踪新分支的新本地分支?

为了说明这一点,这里是我在切换之前的设置(更改分支/回购名称以保护无辜者):

Git        ->     svn
master     ->     trunk
 |-feature1
 |-feature2

现在,这是我的设置

Git        ->     svn
master     ->     trunk
 |-feature1
 |-feature2
newDev     ->     branches/working

问题是,我在那些想要进入svn分支“工作”的功能分支中工作。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

几个月后,我发现了git svn branch命令。您可以使用它在svn远程中创建新分支,然后根据该分支处理本地git分支。从那些本地分支机构向正确的svn分支机构提交也是有效的。

如果您已经拥有正确的本地分支,并希望将其放入尚不存在的svn分支中,您也可以使用git svn branch。使用它来创建一个基于trunk的新的删除svn分支,将其拉入你的git存储库,然后根据你的主人基础重新定位你的本地git分支。

你最终得到的是一个本地git分支,其中包含位于提交顶部的所有更改,其中git-svn-id指向您刚刚创建的分支。当提交时,您的更改也将在远程端的svn分支中结束。

如果有疑问,总会有git svn dcommit -n,它会告诉你git-svn究竟会在哪里提交。