使用GIT-SVN创建的GIT仓库是否有分支限制?

3
许多开源项目(例如django)都有GIT镜像,这些镜像进一步分叉以进行私人或公共开发。GIT镜像通过git svn rebase保持最新状态。但Pro Git Book中含有明确的建议:
啊,但是变基的幸福并不是没有缺点,可以用一句话概括:不要变基已经推送到公共仓库的提交。如果你遵循这个准则,就不会有问题。如果你不遵循,人们会讨厌你,你会被朋友和家人所鄙视。当你变基时,你正在放弃现有的提交,并创建类似但不同的新提交。如果你将提交推送到某个地方,其他人拉取它们并在其基础上工作,然后你使用git rebase重写这些提交并再次推送它们,你的协作者将不得不重新合并他们的工作,当你尝试将他们的工作拉回你的时候,事情会变得混乱。

像Django这样的开源镜像是否违反了上述关于不在公共仓库中进行变基的粗体规则?如果不是,为什么不是?如果是,那么使用这些镜像无法完成哪些可以使用“常规”的非变基Git项目完成的工作?如果这是一个显而易见的问题,我向您道歉;我是一个Git新手。

1个回答

2
想法是:
无论Git分支是由git svn rebase直接生成的,都不应该被重新派生:它的历史必须保持原始导入的状态,以便成功进行dcommit。
任何其他Git分支(不直接链接到SVN分支)都可以随意合并/重新派生。
请参见Easy merging in svn using git-svn
因此,如果在各种Django存储库中受合并/重新派生影响的分支不涉及与dcommit相关的分支(用于将更改同步回SVN存储库),那么应该没问题。

感谢您清晰的回答——非常有帮助。对于设置其他(未链接到SVN)分支,将它们放在与SVN链接的分支相同的存储库中是否有优势,还是将它们分开(派生)存储库是否可以? Django就是采用后者,但在我们设置相同结构之前,我想知道他们是如何做到的,是否存在我们需要避免的问题。 - Justin Grant
@Justin:我不认为将那些未与SVN关联的分支保留到其他仓库中存在任何隐藏的缺点。 - VonC

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