3

许多开源项目(例如django)都有 GIT 镜像,这些镜像反过来又被分叉用于私人或公共开发。GIT 镜像与git svn rebase. 但是Pro Git Book包含这个明确的建议:

啊,但是变基的幸福并非没有缺点,可以总结为一行:

不要对已推送到公共存储库的提交进行变基。

如果您遵循该准则,您会没事的。如果你不这样做,人们会恨你,你会被朋友和家人鄙视。

当你 rebase 东西时,你放弃了现有的提交并创建了相似但不同的新提交。如果你将提交推送到某个地方,而其他人将它们拉下来并基于它们进行工作,然后你用 git rebase 重写这些提交并再次推送它们,你的合作者将不得不重新合并他们的工作,当你尝试时事情会变得一团糟把他们的工作拉回你的工作。

像 Django 这样的开源镜像是否打破了上面关于不在公共回购中重新定位的粗体规则?如果不是,为什么不呢?如果是这样,使用这些可以通过“常规”非重新构建的 Git 项目完成的镜像不能完成什么?如果这是一个明显的问题,我们深表歉意;我是一个 Git 新手。

4

1 回答 1

2

这个想法是:

  • 无论 Git 分支是 a 的直接结果,git svn rebase都不应该被重新设置:它的历史必须保持最初导入的状态,以使 dcommit 成功
  • 任何其他 Git 分支(不直接链接到 SVN 分支)都可以随意合并/重新设置。

另请参阅使用 git-svn 在 svn 中轻松合并

因此,如果在各种 Django repo 中受合并/rebase 影响的分支不是 dcommit 所涉及的分支(同步回 SVN repo),那应该没问题。

于 2010-10-05T06:08:47.710 回答