2013-05-15 23 views
0

我有两个git回购站,一个用于我正在编写的库的普通源代码,另一个用作测试环境。我会分别给他们打电话proddevGit从源代码仓库拉,推到单独的测试存储库的目录

提交者从dev中拉取/推送,然后一旦dev达到可释放状态,包含源代码的子目录被推送到prod。这是通过将prod设置为dev中的git子模块来完成的。这是很容易的部分。

现在,有一个外部贡献者。有人从prod获取源代码,因为这是他们项目所需的全部内容,并且他们着手将其作为子模块。

但是,我不希望他们推动prod,因为它有可能会在没有在dev上进行测试的情况下发生。所以,我想让他们推到dev,但特别是包含源代码的dev中的子目录,所有常规贡献者可以下拉并测试和处理等等等等。

这是可能? 应该如何我这样做了吗?我应该如何将这些东西分解成单独的回购?

+0

如果你是唯一一个推动'prod'的人,也许最好将它克隆到一个非裸露的回购站,并用它替换裸露的回购站。然后没有人可以推动它,并且你可以根据需要将'dev'的更改放入它。 –

回答

0

查看Pro Git书籍章节5.1 Distributed Git - Distributed Workflows中规定的工作流程。您可以使用Integration-Manager工作流程。你会拥有一个每个人都会从中得到祝福的存储库,但没有人可以推到。集成商将拥有推送权,并将从所有开发者处获得更改,将他们整合,并将他们推向那个受到欢迎的回购。所有回购将是相同的(不会是devprod),并且您可以让人们从dev分支开始工作,以便在将它们合并到master之前正确整合之前更容易一些。这确实对该角色中的人员进行了大量的整合工作,但这也意味着至少有一个人对整个项目进行了非常好的概述。

我认为使用可用于生产就绪代码的子模块的情况并不常见。这实际上是分行擅长的,通常用于。