4

我是 DVCS 的新手,所以请多多包涵……

我是一个软件库的作者,目前在 BitBucket 上作为私有存储库托管。我想向公众发布我的库的源代码,但设置如下:

  • 我想在 BitBucket 上维护两个存储库,一个是私有的,一个是公共的。
  • 我希望公共存储库的初始内容是私有存储库的当前内容,没有任何历史
  • 我想继续在不接触公共存储库的情况下向私有存储库提交。然后,偶尔,我想将一大堆提交提交到私有存储库,并将它们作为单个变更集推送到公共存储库,并带有自己的提交消息

我怎样才能做到这一点?如果有帮助,我的私人仓库只有一个分支(主要分支)。

4

2 回答 2

3

这很容易做到。我会创建一个“发布”分支,并在您想要推送到公共仓库时合并到该分支中。然后使用 convert 扩展只提取这个分支。

然而,像这样工作几乎从来都不是一个好主意。潜在的贡献者通常不想忍受闭门造车的发展。对于开源工作,通常最好打开所有内容——错误跟踪器、源代码库、wiki、邮件列表、评论……</p>

于 2012-07-31T08:08:37.917 回答
3

连接变更集

好吧,可以使用其中一种技术或使用.rebase 扩展来实现连接变更集--collapse

分支结构

要执行您想要的操作,您必须有一个包含详细提交的开发分支和一个包含串联提交的发布分支。只要发布分支没有来自开发分支的任何节点作为祖先,您就可以只推送发布分支。这意味着您必须使用上述选项之一,您不能将开发分支合并到发布分支,因为这会将开发分支节点设置为公共分支的祖先,并且您必须推送这些节点。

争议

虽然这是可能的,但我同意@Ringding,它不应该是常规工作流程。以下是不这样做的两个很好的理由:

  1. 您正在为您的工作流程增加不必要的复杂性,事情应该更简单。
  2. 这些开发变更集是导致最终版本的演进步骤,它们是历史的一部分,隐藏起来就像撒谎一样。这就是为什么历史编辑工具是扩展而不是核心命令的原因,它们不应该成为正常工作流程的一部分。
于 2012-07-31T11:43:45.423 回答