Git流使用麻烦的开发方法

Git流使用麻烦的开发方法,git,Git,我很难想出一个与我的公司开发方法相结合的GIT流程。我从未与其他软件公司合作过,所以我不确定我们的方法与其他公司相比有多大不同 我们创建了50个不同的系统——每个系统基本上都做相同的事情,但是根据客户的业务规则、评级版本(我们创建保险单跟踪系统)进行定制。一个开发人员被分配到一个团队(总共5个开发人员)这可以访问其中的15个系统,而且他们可以在任何给定的一周内轻松地对这15个系统中的每一个进行更改。我们每周都会根据“需要”将支持和较小的开发工作集成到实时系统中——换句话说,“下一个版本”中没有列

我很难想出一个与我的公司开发方法相结合的GIT流程。我从未与其他软件公司合作过,所以我不确定我们的方法与其他公司相比有多大不同

我们创建了50个不同的系统——每个系统基本上都做相同的事情,但是根据客户的业务规则、评级版本(我们创建保险单跟踪系统)进行定制。一个开发人员被分配到一个团队(总共5个开发人员)这可以访问其中的15个系统,而且他们可以在任何给定的一周内轻松地对这15个系统中的每一个进行更改。我们每周都会根据“需要”将支持和较小的开发工作集成到实时系统中——换句话说,“下一个版本”中没有列出任何内容——下一个版本就是我们下周上线所做的一切。此外,我们的主要开发项目已经指定了到期日期。这些到期日由州政府批准和第三方供应商发布决定,此外还有“我们只是没有及时完成”的情况,这似乎困扰着我们

本质上,在任何给定的一周,我们都可以将次要支持/开发票证和主要开发票证发布到生产中——这些票证在最初创建时都没有可靠的发布日期


我们一直在使用首页扩展,但我们真的需要转移到现在。是否有一个git流可以适应这种开发方法?不同的版本控制系统会更好吗

如果计划发布和每周发布共享公共代码库(即每个系统有一个开发主线和一个受支持的版本),则可以使用“每个任务分支”的思想,并作为思想的实现

不同的版本控制系统会更好吗

这(主要)是个人品味和偏好的问题

不同的事物会发生变化 我们创建了50个不同的系统——每个系统基本上都做相同的事情,但是根据客户的业务规则、评级版本(我们创建保险单跟踪系统)进行定制,等等

问题既不是Git,也不是您的工作流。据我所知,问题在于您的代码中有一个子部分是高度可变的,您正在对核心应用程序而不是子模块或外部资源进行更改

根据经验,解决此类问题的最简单方法是将更改的内容(例如业务规则)分离到单独管理的资源中。您如何管理该资源取决于您,但有两个合理的选择

资源文件和模块 你也可以考虑:

  • 将变体代码重构为YAML、JSON、INI或运行时读入的其他资源文件
  • 适用于您的应用程序的一组代码文件(例如Ruby模块),可以在编译时或运行时有条件地包括这些文件

  • 同样,做这些事情的目的是提取更改的内容,将其从为每个人加载的应用程序逻辑中分离出来。很大程度上取决于应用程序的语言及其体系结构;这里没有一个“正确答案”。

    老实说,我想我在使用SCC、SVN、Clearcase和git的多家公司都做过这样的工作。虽然我个人非常支持git,但我认为真正的限制是如何选择管理QA、UAT和客户发布。也许你可以描述一下?我们目前正在使用“每任务一个分支”的想法和Git流,但我想知道跟上所有这些分支有多困难。我们有三个与服务器相连的分支——QA分支、支持分支(用于UAT)、暂存分支(用于周期测试)和主分支(与现场/生产相关)。我们有一个发布分支(每周从QA处复制)它被用作开发人员测试和协作的单一开发主线。任何将在下周内提交给QA的内容都将在完成后发布到此分支。项目负责人负责维护此分支。一旦升级,应为任何新工作创建新版本。我们有支持/次要开发在单个任务分支上完成的工作——如果这些分支对生产没有影响,可以将它们合并到发布分支中,或者在合并到其他分支的同时将它们合并到活动(对于严重程度为一的问题)。主要的开发工作(涉及多个开发人员协作,但可能在几周内不会包含在一个发布中)创建了一个里程碑/工作分支——它由该特定工作的负责人维护。一旦我们将更改推送到github(在这些里程碑分支上),我们会发送一封电子邮件,这样每个人都可以更新他们的本地分支。我只是担心这需要跟上很多,而且开发人员花在跟上变化上的时间比实际开发的时间要多……我不认为我们有个人偏好——我们没有一个关于什么最有效的知识库这实际上是我一直在推动的工作;呵呵然而,这样做会非常昂贵和耗时。虽然我认为这是最好的主意,但我不认为这是我能够使用的选项