子树是我正在寻找的工作流程吗?

时间:2016-11-16 18:18:22

标签: git project-management

我正在尝试设置在项目中的不同工作环境之间移动的工作流程。所有这三个区域都是他们自己的独立文件夹(他们是网站),我希望能够在开发时间表上工作,直到我准备好进行QA测试,然后将我的版本推送到QA时间线。一旦QA完成,我想把它推到生产中以供一般使用。所有时间线都是他们自己的独立文件夹,因为它们是网站。我在Visio中画了一张图片来说明我脑子里的工作流程。使用的是我正在寻找的子树吗?或者有更好的方法吗?谢谢!注意:我现在正在使用自己的数据库服务器实例和FTP服务器运行Windows server 2012 R2,IIS 8,开发,测试和生产他们自己的独特网站。

enter image description here

2 个答案:

答案 0 :(得分:0)

从一个非常小的团队角度分享我的经验。我们的生产和测试环境位于同一主分支上,但按分支名称(master,qc)和tag(master.01.date,qc.01.date等)分开。我们做了很多rebase / cherry-pick / merge dev提交到主分支然后相应地发布到网站(QC / Production)。

enter image description here

Dev A和B在当前或上一次生产提交的某处分支。

开发完成,重新加入主分支,发布到QC站点,然后发送给QC团队。

这可能对大型团队或复杂项目无效。但这对我们来说很容易理解。我希望我们在合并之前压缩提交,但是我们提交了太多提交,但它们更容易追踪。

答案 1 :(得分:0)

您可以在回购中使用单独的分支,让每个文件夹克隆回购并签出相应的分支。这将允许您根据需要轻松合并和分支(根据您希望历史记录的方式进行变基数;根据您所描述的内容,我认为您希望合并而不进行变基,因为那时您只需要一次提交,例如"将QA合并到生产中,而不是拉入所有QA提交。这将在每个文件夹中包含.git目录带来一点开销,但这看起来很方便。

还有可能检出文件夹中的错误分支。如果您对此感到担心,您可以将每个文件夹设置为自己的空(或大部分为空)回购,其中包含您的实际代码作为子模块。这将允许您将文件夹锁定到特定的提交(以及分支)。例如,在将QA合并到生产分支之后,您可以将生产回购的关系推进到子模块到新的提交。

最好避免采摘樱桃,因为这可能会导致各种奇怪的问题,并使历史难以理解。