Git 重新设定基准是否重要?

Git 重新设定基准是否重要?,git,git-rebase,Git,Git Rebase,我有一份回购协议,有发展分公司。两个开发人员在各自的分支上工作,b1和b2都来自开发分支。无论是工作还是完成后,都要不断将更改推送到原点。然后,这些分支合并到原始开发中(位桶) 我想问一下,在每次合并后,他们是否有必要重新调整分支机构的发展基础?还是继续进行越来越多的提交和推送,直到完成该功能?这里什么是正确的策略?没有“正确”的策略 每次开发分支有新提交时,他们都可以将其b1/b2分支重设为开发分支。这有两个好处: 立即以小批量修复合并冲突 开发人员确信,在开发其功能时,他的代码可以与推送到远

我有一份回购协议,有发展分公司。两个开发人员在各自的分支上工作,b1和b2都来自开发分支。无论是工作还是完成后,都要不断将更改推送到原点。然后,这些分支合并到原始开发中(位桶)


我想问一下,在每次合并后,他们是否有必要重新调整分支机构的发展基础?还是继续进行越来越多的提交和推送,直到完成该功能?这里什么是正确的策略?

没有“正确”的策略

每次开发分支有新提交时,他们都可以将其b1/b2分支重设为开发分支。这有两个好处:

  • 立即以小批量修复合并冲突
  • 开发人员确信,在开发其功能时,他的代码可以与推送到远程的任何东西一起工作
  • 或者,他们可以分支开发分支,在b1/b2上实现他们的特性,并且在完成特性之前不进行重定基址。这有一个好处:

  • 在他们处理功能时,不会遇到合并冲突等问题,使他们更专注于手头的任务
  • 然而,这也有两个缺点

  • 当他们的功能完成后,他们需要在最后重新设置基址。他们不知道在此期间向开发分支做出了多少承诺,这可能会使这成为一项巨大的任务——需要重新设置基础的承诺越多,潜在的合并冲突越多,可能越混乱,工作就越多

  • 同时合并到开发分支中的代码可能会破坏它们在特性中依赖的代码


  • 这真的取决于你/他们想如何工作。他们希望自己的工作流程不受干扰吗?->最后,重新设置一次基。他们是否希望得到这样的保证,即他们的代码将与同时推出的任何东西一起工作?->经常重新设置基础。

    我认为您的工作流程有问题

    这是一些有效的工作流:
    1.开发人员开始使用功能F1
    2.开发人员从开发分支创建分支f1。
    3.开发人员对分支f1进行更改。
    4.开发人员完成功能f1后:
    -开发人员将分支f1合并到开发分支
    -开发人员删除分支f2

    建议重定基址的另一种情况是:
    1.开发人员开始使用功能F1
    2.开发人员A从开发分支创建分支f1。
    3.开发人员A对分支f1进行更改。
    4.开发人员B对开发分支进行更改,该更改对分支f1非常重要
    5.要将开发分支更改为f1开发者,请使用开发分支重新设置分支f1的基础
    6.开发人员A对分支f1进行了更多更改。
    7.开发人员完成功能f1后:
    -开发人员将分支f1合并到开发分支
    -开发人员删除分支f2


    所以,将功能合并到父分支通常在功能完成时完成。之后,在开始开发下一个功能时,最好删除该分支并创建新的分支。在这种情况下,在开发仍在进行的情况下,从父分支处获得更改是很好的。

    重新基址通常更好、更干净,但是是否系统地使用它取决于上下文,这是一个观点问题。这个链接可以帮助您理解行业标准。我想它还必须取决于项目的大小和细节。如果项目规模巨大,而且往往会动态变化,那么你最好更频繁地重新调整基础,因为正如蒂姆所说的那样——在工作2个月后,你很有可能会花一周的时间寻找有关如何正确调整基础以及应该/不应该保留什么的信息。另一方面,如果有两个开发人员在一个项目的不同部分工作,那么就没有理由一直重新设定基准,特别是如果您可以直接沟通和计划/协调您的工作。