Git 您在团队中使用哪些指南或标准进行版本控制?

Git 您在团队中使用哪些指南或标准进行版本控制?,git,version-control,standards,Git,Version Control,Standards,我开始在公司内部进行少量的开发。我打算使用Git进行版本控制,我想看看人们在他们的团队中使用的关于版本的指导方针或标准,类似于团队中经常为团队编写的编码标准 我想会有这样的事情 经常提交(至少每天/每周/会议等) 发布版本总是从主分支生成 在发布之前,将创建一个用于测试的新分支,并将其标记为测试分支。从这一点开始,只修复bug。最终版本将被标记为这样,错误修复将合并回主干中 每个开发商都将有一份公开回购协议 新功能应该有自己的分支 显然,这在很大程度上取决于你使用的是什么样的风投,以及你是如

我开始在公司内部进行少量的开发。我打算使用Git进行版本控制,我想看看人们在他们的团队中使用的关于版本的指导方针或标准,类似于团队中经常为团队编写的编码标准

我想会有这样的事情

  • 经常提交(至少每天/每周/会议等)
  • 发布版本总是从主分支生成
  • 在发布之前,将创建一个用于测试的新分支,并将其标记为测试分支。从这一点开始,只修复bug。最终版本将被标记为这样,错误修复将合并回主干中
  • 每个开发商都将有一份公开回购协议
  • 新功能应该有自己的分支
显然,这在很大程度上取决于你使用的是什么样的风投,以及你是如何构建它的

类似问题

只有一个标准:

  • 签入中断更改将导致踢击

  • 在我目前工作的地方,版本控制系统是最先进、最成熟的系统之一。我们就是这样做的

    我们有一个称为“主”分支的东西,它是将要投入生产的代码库。注意,代码库位于一个巨大的结构中。比如说,如果一个新的项目来了,我们将不得不为它做一个范围界定,并将预定一个发布周。现在我们必须开始研究它。所以,我们从main上切下一个分支,称为featurebranch。开发团队或开发组继续在该特定功能分支中工作。注意:从主分支同时会有许多特征分支切割

    现在,一旦开发结束,按照惯例将代码合并回main。我们不会直接这样做,因为它可能会由于明显的关键性问题而造成严重破坏。因此,我们从main中又切了一个分支,称为pre release。我们将所有代码合并到该版本库中。并在完整的代码基础上进行构建。构建应该通过。当它这样做时,我们提取一个绿色的时间戳(上次传递的构建)。一旦获得绿色时间戳,代码将从预发布分支合并到main,发布完成

    一旦代码投入生产,并且说如果我们遇到一些bug,我们将从main中删除一个称为bug修复分支的分支。做所有的改变。并将其合并回main;始终遵循预发布/绿色时间戳流程。这是不可避免的

    重新定位。好的,最初我说我们会在功能分支完成时预订。在这段时间内,main上会有很多代码更新。因此,您非常有必要不断更新当前的功能分支,以便与main同步。为此,完成了一个称为重基的过程。这就像从main获取最新的代码,这样你就不会在一个过时的分支中工作。在我目前的组织中,每2-3周会触发一次重新基准,尽管政策建议为1周

    更有趣的特性:假设我目前正在开发一个所谓的特性分支,我想从其他团队中获得一些代码,这些团队也在自己的特性分支中工作(虽然这种情况似乎不常见,但经常发生)。为此,我们将更改配置规范(ClearCase是我们的版本控制系统),以指向其他项目所需的文件。可以使用LATEST或指定时间戳来提取来自其他要素分支的文件


    在项目上线后的一段时间内,我们剪切的功能分支几乎不需要。它可以从系统中终止,比如说,一年后,空间应该是一个限制。

    我的“cvs”是TFS,所以,不管它值多少钱,都要接受它

    如果有人破坏了构建,则应用甜甜圈规则(第二天带来一盒甜甜圈)

    您提到了根据天、周或会议进行频繁提交。 这个系统不会引入不完整的代码吗? 在代码审查之后提交可能更稳定

    设置单元测试将是一个良好的开始实践,因为这就像让第二个QA团队通宵工作(当这些单元测试作为通宵构建的一部分运行时)

    至于每个特性都有一个分支,这不是我使用的东西,而是我们在有人破坏构建时谈论的东西,因为如果一个团队破坏了一个特性,其余的东西仍然构建。要使其正常工作,您的安装程序必须足够灵活,即使缺少可选功能,也可以进行构建和部署

    这样的按功能构建可以提高生产率,因为QA可以在第二天就开始测试,而不是被一个坏的构建阻塞,直到下午晚些时候修复它,或者甚至推迟到第二天才看到另一个类似的问题发生

    CVS是众所周知的,但是如果我要开始开发团队/项目,我可能会考虑看看JILA Studio


    一旦您拥有了主分支,您想要使用的任何任务或功能都应该在其自己的分支中开发。始终保持主分支的稳定和生产准备就绪。每当你有一个任务,分叉一个分支,在那里做你的工作,修复任何bug,然后与master合并

    无需每天(或任何其他时间单位)办理入住手续。我们总是根据功能完成情况进行签入,不一定是完整的功能集,而是在逻辑上可管理的小块中。这使我们能够比每天检查所有代码(无论是否相关)更容易地发现bug

    保持提交消息的清晰性和针对性,这将在您重新访问代码时为您提供极大的帮助

    git的一个小问题,当你分叉一个分支时,它是从你当前所在的分支分叉的,而不是从主分支分叉的。这是一件显而易见的事情,但在分叉新分支之前,请始终仔细检查当前分支

    使用。