2017-08-30 33 views
1

我属于开发团队,由快速发展的内部开发环境中的五名成员组成(我们开发由其他部门使用的基于Web的解决方案,即一个ERP)。我们目前使用SVN作为一个具有开发环境和现场环境的项目;开发环境使我们能够确保功能在推向实时环境之前正在运行。当满足要求时,我们将更改从开发服务器提交到SVN存储库,并将这些特定更改提交到实时服务器。在快节奏的环境中从SVN切换到Git

Current workflow using SVN

我们做测试的开发,直到代码达到一个稳定点提交。

然而,我们想要切换到Git(我们的很多其他项目都安装在Git上,我们希望它是一致的)。这是一个挑战。我们希望能够轻松快捷地使用和跟踪工作流程。我建议有两个主要分支供现场(主)和开发人员使用,并在各自的分支中进行每项功能/修复。这使得事情变得更好,但更难以实现,因为它需要更长的时间,我们对代码所做的一些更改需要尽快实时推送。

另一个建议是只有一个dev和live分支。我们将致力于开发部门,确保他们的工作,然后一旦我们对结果感到满意,将这些文件合并到现场。这个唯一的事情是我无法找到一个体面的方式来实现这种行为。是否有可能将特定文件从一个分支快速合并到另一个分支?

是否有任何其他git工作流程更适合我们这种环境?

回答

0

两者的两点建议您列表可以工作,但两个工作流可以与下面的工作流程改进:

  • develop分支:所有的开发者在这个分支上工作。当更改准备部署到实时环境时,开发人员可以将其更改推送到livemaster)分支。
  • 功能/修补程序分支:是开发人员在其本地回购中的空头分支。例如,如果开发人员想要开发新功能或修复错误,他可以从develop分支创建本地功能/修复分支。完成工作后,将功能/修补程序分支合并到develop分支中。
  • live/master分支:它用作生产/发布版本。在develop分支验证码后,develop分支可以合并为live/master分支。

两个建议之间的差别你列出:

  1. 它也有两个主要分支(developlive/master)作为第一个建议,但它只有功能/修补程序分支为develop分支因为live/master作为生产/发布版本的分支工作。
  2. 此工作流程不直接在develop分支上进行更改。它适用于功能/修补程序分支,然后将更改合并到develop分支中。
+0

感谢您的回答。在开发过程中,总会有特定的文件需要实时推送,但会忽略一些文件(如果它们仍在开发中)。有没有一种方法可以指定将哪些文件从开发分支合并到主分支中?即一个开发人员创建功能一,另一个开发人员创建功能二。这两个功能都在开发分支上,但功能需要现在就投入使用。 – driima

+0

这个问题似乎在你的另一篇文章中提出,我在那里添加了一个答案。您可以让批准者决定将哪个功能合并到开发分支中。只有合并到'development'中的特性才会被合并到'master'中(详细信息,您可以在该答案中查看)。 –