本地Git分支能否与远程SVN仓库配合使用?

12
我们有一个用于存储源代码的SVN代码库。我们希望使用Git本地分支来开发新功能并利用Git能力,如合并算法等。
是否可能?如果是,请有人提供有关如何执行此操作的信息。

所以这个远程SVN仓库只是一个“备份和分发方法”吗? - user166390
1
不完全是。在我们在本地Git分支上开发功能后,我们将合并到远程SVN存储库中。(如果可能的话) - gustavodidomenico
1个回答

17

是的,您需要使用git-svn

首先,您需要git svn clone您的SVN存储库。请注意,这将从SVN服务器获取每个修订版,并将其重新创建为Git存储库。 这些Git存储库不应由多个开发人员共享。 每个开发人员都应单独运行git svn clone

然后,您可以使用标准Git命令创建本地分支,因为您基本上拥有具有一些额外的SVN元数据以跟踪SVN提交的标准Git存储库。 您可以使用像git svn dcommit这样的命令将Git中的提交推送到SVN服务器(每个Git提交将成为单独的SVN提交)。

我建议阅读一篇好的git-svn教程

(如果可能的话,您还可以考虑是否实际上更喜欢使用git-svn将您的SVN存储库转换为Git存储库,然后停止使用SVN。)


1
那么,我可以进行本地提交,当我想要将它们推送到 SVN 存储库时,执行 dcommit 操作吗? - gustavodidomenico
1
@gustavodidomenico 正确。如果您正在跟踪 git-svn 的分支,则 dcommit 操作将执行一批 SVN 提交,并使用有关 SVN 提交的元数据重写您的本地 Git 提交。(因此,事情可能会变得有点混乱。如果您了解重新基础是什么或者 filter-branch 可以做什么,那么每次执行 git svn dcommit 时都会发生这种情况。这是多个开发人员不应以任何方式共享 Git 存储库的原因之一。) - cdhowie
谢谢你的帮助,我将去查看教程。 - gustavodidomenico

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