如何为SVN仓库创建Git远程分支

4
我正在使用GIT在一个集中的SVN仓库上进行操作,SVN仓库只包含主干(trunk),没有标签和分支。之前我使用git svn将远程仓库克隆到我的本地git工作区,因为只有我一个开发者,所以一切都很顺利。
现在,又有几个开发者加入了我们的项目,我们需要一起在这个svn仓库上工作,我想创建远程的git分支来跟踪svn主干,这样所有开发者都可以在这些git分支上共同工作。我不想创建svn分支,因为它们太重了。但是经过一些搜索,似乎git svn不支持这个功能,或者我漏掉了什么?
我也考虑过将我的git本地分支变成远程分支与其他开发者分享,但不确定这是否可行。

你不需要做任何事情来让其他开发者可以使用你的 git 分支作为远程,其他开发者只需要安装 git 并且通过一些 git 支持的协议来获取你的仓库。当他们克隆你的仓库时,你的分支将被设置在“remotes/”下,并且他们可以检出自己的本地分支副本。 - Sean Vieira
为什么开发者不也做一个 SVN 克隆呢?他们可以在自己的内部分支上工作,完成后将更改提交到 SVN。您真的想要建立一个中央 Git 存储库吗? - the.malkolm
@the.malkolm 是的,我需要这个,因为他们中的几个人正在共同开发一个功能,而我不希望他们直接通过SVN进行协作。 - asticx
@SeanVieira 谢谢 Sean,我是通过使用 Apache + GIT 实现的。 - asticx
2个回答

3
我在这里找到了一个很好的描述: part 1part2。虽然设置过程需要一些步骤,但是一旦完成,它就可以成功运行。你可以自由地在git仓库之间交换提交,并且也可以将每个仓库与SVN仓库同步(双向)。

这看起来非常有趣。我要用我们的repo试一下...如果它有效,我会投下反对票给自己,支持你! - Peter Bratton

0
问题在于git和svn保留历史记录的方式不同。Subversion假定所有开发人员的协调都通过中央仓库进行,而git则假定每个仓库将独立地组装变更集。您和您的团队将能够通过git交换分支,但当到达同步最终结果的时候,您将遇到问题。这就是为什么git-svn没有明确支持此功能的原因。
我从您的评论中注意到,您不希望您的开发人员直接使用SVN进行协作...我相信您有您的理由,但请意识到这与git-svn的设计相反。git-svn最好被视为Subversion客户端,而不是git仓库网络和中央SVN仓库之间的桥梁。您可能需要考虑允许您的团队在Subversion中创建共享工作分支。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接