Git 新的工作应该在版本控制中的主干或分支中完成?

Git 新的工作应该在版本控制中的主干或分支中完成?,git,svn,github,version-control,merge,Git,Svn,Github,Version Control,Merge,嗨,我正在学习版本控制、主干和分支。我读了一些文章,现在感到困惑 其中一个说 开发人员将所有新工作提交给主干。日复一日的变化 提交到/trunk:新功能、错误修复等 主干被复制到“release”分支。当团队认为 软件已经准备好发布(比如说,1.0版本),/trunk可能已经发布 已复制到/branchs/1.0 所以这里它说每一个主要的改变都是在主干中完成的,当软件准备好发布时,你应该创建一个分支并在那里进行小的bug修复 但是另一个说 行李箱始终保持稳定 所以这一条似乎说,分支机构是

嗨,我正在学习版本控制、主干和分支。我读了一些文章,现在感到困惑

其中一个说

  • 开发人员将所有新工作提交给主干。日复一日的变化 提交到/trunk:新功能、错误修复等
  • 主干被复制到“release”分支。当团队认为 软件已经准备好发布(比如说,1.0版本),/trunk可能已经发布 已复制到/branchs/1.0
所以这里它说每一个主要的改变都是在主干中完成的,当软件准备好发布时,你应该创建一个分支并在那里进行小的bug修复

但是另一个说

  • 行李箱始终保持稳定
所以这一条似乎说,分支机构是否发生了重大变化:/

第三篇文章说

  • Trunk代表下一个主要版本
  • 分支表示特定的发布版本
所以我在这里感到困惑

我有几个问题

1 when should we create a branch  ?  
2 Are we giving the release form branch or trunk ?  
3 Are we doing major changes in branches or only doing minor modifications
4 Are we doing the testing in branch or trunk 
Project is a PHP project
we are doing a relase in every 2-3 weeks
we are using git 
Team size is 4
All are familiar with version control
请回答这些问题,因为我花了两天多的时间来了解这些问题,但我仍然不知道。提前感谢:)

更新

1 when should we create a branch  ?  
2 Are we giving the release form branch or trunk ?  
3 Are we doing major changes in branches or only doing minor modifications
4 Are we doing the testing in branch or trunk 
Project is a PHP project
we are doing a relase in every 2-3 weeks
we are using git 
Team size is 4
All are familiar with version control

您遇到的是许多接近版本控制的模式。我参与过的几个项目的一个模型是:

因此,总结如下:

  • 主分支(随时准备部署生产)
  • 开发分支(表示通过合并到主功能进入生产的下一组功能)
  • 功能分支(您可能有几个分支,代表子团队面向功能的工作。例如,您可能有一个分支用于功能oauth、功能loginform等,所有分支都将在完成后合并到develop中)
  • 错误修复/热修复分支(当需要热修复时,这些分支从master分支,并在错误修复/热修复完成时合并回master/develope)
这篇文章将有助于详细介绍所有不同的类型。该工作流旨在为您提供专门构建的分支,这些分支说明它们的存在原因、来源和目的地,这有助于简化分支、合并和团队沟通

理想情况下,这将存在于github/bitbucket/gitlab这样的git服务器上,该服务器支持pull请求,因此项目负责人/所有者可以接受更改并查看团队的工作流等


然而,底线是这个问题没有“答案”,只有建议。分支策略是特定于团队的,像这样的建议非常广泛(它们在各种情况下都会有帮助),但您应该支持对您的团队有意义的工作流:)

您遇到的是许多用于实现版本控制的模式。我参与过的几个项目的一个模型是:

因此,总结如下:

  • 主分支(随时准备部署生产)
  • 开发分支(表示通过合并到主功能进入生产的下一组功能)
  • 功能分支(您可能有几个分支,代表子团队面向功能的工作。例如,您可能有一个分支用于功能oauth、功能loginform等,所有分支都将在完成后合并到develop中)
  • 错误修复/热修复分支(当需要热修复时,这些分支从master分支,并在错误修复/热修复完成时合并回master/develope)
这篇文章将有助于详细介绍所有不同的类型。该工作流旨在为您提供专门构建的分支,这些分支说明它们的存在原因、来源和目的地,这有助于简化分支、合并和团队沟通

理想情况下,这将存在于github/bitbucket/gitlab这样的git服务器上,该服务器支持pull请求,因此项目负责人/所有者可以接受更改并查看团队的工作流等


然而,底线是这个问题没有“答案”,只有建议。分支策略是特定于团队的,像这样的建议非常广泛(它们在各种情况下都会有帮助),但您应该喜欢对您的团队有意义的工作流:)

正如您所看到的,有不同的选项/样式。重要的是,你要选择一个适合你的项目,并确保每个人都了解分支/标记是如何使用的。@Thilo,是的,但最佳实践是什么。为了减少合并问题和使用版本控制时发生的问题,在回答问题时有很多因素要考虑。这是一个开源项目吗?这支队伍有多大?代码库有多大?你多久释放一次?您使用git还是svn?团队使用您的版本控制的经验如何?@AndersNS我已经更新了我的问题,请查看ITA,因为您可以看到,有不同的选项/样式。重要的是,你要选择一个适合你的项目,并确保每个人都了解分支/标记是如何使用的。@Thilo,是的,但最佳实践是什么。为了减少合并问题和使用版本控制时发生的问题,在回答问题时有很多因素要考虑。这是一个开源项目吗?这支队伍有多大?代码库有多大?你多久释放一次?您使用git还是svn?团队在使用您的版本控制方面的经验如何?@AndersNS我已经更新了我的问题,请检查该模型的+1。现在非常流行,一些工具明确支持此工作流。此模型+1。它现在非常流行,一些工具明确支持此工作流。