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

问题描述:

我正在尝试设置工作流程,以便在项目的不同工作环境之间移动。所有这三个领域都是他们自己的独立文件夹(他们是网站),我希望能够在开发时间线上工作,直到我准备好进行质量检查测试,然后将我的版本提升到质量检查时间表。一旦完成质量保证,我希望将其推广到一般用途的生产。每个时间轴都是他们自己的独立文件夹,因为他们是网站。我在Visio中画了一张照片来说明我脑海中的工作流程。正在使用子树我在找什么?还是有更好的方法来做到这一点?谢谢!注意:我现在正在运行Windows Server 2012 R2,IIS 8,开发,测试和生产自己的独特网站,并拥有自己的数据库服务器实例和FTP服务器。子树是我正在寻找的工作流程吗?

enter image description here

+0

Git Flow分支模型适用于您的用例:http://nvie.com/posts/a-successful-git-branching-model/ – bcmcfc

+0

@bcmcfc这似乎是我在做更多读入它。尤其是基于这个信息图:http://danielkummer.github.io/git-flow-cheatsheet/ 感谢您的帮助! –

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

enter image description here

开发A和B分支出来某处当前或以前的生产提交。

开发完成后,重新发布到主分支,发布到QC站点,并发送给QC小组。

这可能不适用于较大的团队或复杂的项目。但这对我们来说很容易理解。我希望我们在合并之前压缩提交,尽管我们提交的提交过多,但它们更易于追踪。

+0

这是一个有趣的方式来做到这一点,谢谢! –

+0

没问题。我相信这不是最好的方式,只是分享:) – Tek

您可以在回购中使用单独的分支并让每个文件夹克隆回购并签出适当的分支。这可以让您轻松地根据需要进行合并和分支(取决于您希望历史记录的外观);根据您所描述的,我认为您希望在不重新绑定的情况下进行合并,因为那样您将只进行一次提交,如“合并QA投入生产“而不是牵扯所有QA提交)。这将需要从每个文件夹中的.git目录开销一点点,但它似乎值得方便。

还有可能检出文件夹中的错误分支。如果您担心这一点,您可以改为将每个文件夹作为自己的,空的(或大部分为空)回购,其中包含您的实际代码作为子模块。这将让你锁定文件夹到一个特定的提交(和,所以,分支)。例如,在将QA合并到生产分支中之后,您可以将生产回购的联系提升到该子模块以执行新的提交。

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

+0

我想我遗漏了一个重要的功能,我正在寻找可能会搞砸了。我们目前的github工作流程迫使我们同步到github,但也会将我们的文件FTP到我们的服务器以查看更改。我期待结合成一个。我们将我们的更改同步到git服务器,并自动自动更新某个环境文件夹。 –

+0

@AndréFecteau阿好。在这种情况下,我仍然会在git中建议多个分支,但是每当存在合并“上”(即从QA到生产而不是反之亦然)时,都会为ftp更改添加脚本。 – Andrew