处理顺序拉取请求之间的依赖关系的好策略

Mik*_*378 7 git version-control github branching-and-merging pull-request

Bob克隆了该项目,并A从创建一个本地分支master

鲍勃(Bob)添加了一些有用的帮助程序类,其中包括清理/重构单元测试设置,并清理所有现有测试。

Bob提交,推送到远程服务器,然后创建拉取请求,以便从John获得有关此重构的代码审查。

负责该项目的John忙了一个星期,因此无法立即进行审查。

在要求进行代码审查之后,Bob希望编写一些全新的测试文件和一组类,并以另一个单独的请求请求结束,因为它被视为正在使用一项新功能。
显然,鲍勃想使用他的新助手来处理这些测试文件。

采用哪种策略:

  • 对于那些新的单元测试,鲍勃应该创建一个B来源于分支master,而不是A因为A还没有任何评价。缺点是他还不能使用单元测试助手,因为它不存在B

  • Bob应该等待第一个请求的代码审查,合并到master,然后B从派生master。在这段时间里,他应该专注于其他不依赖于先前的拉取请求的作品。

  • 鲍勃应该BA这些帮助者那里派生并使用这些帮助者,冒着A在审核后不被接受的风险。显然导致拒绝B

  • 约翰应该摇摇晃晃的屁股,并作为一个好的领导者,应该在短时间内审查第一个拉动请求,以便鲍勃可以串连。

处理一系列多个请求之间的依赖关系的良好做法是什么?

Mar*_*Liu 3

\xe2\x80\x99 没有必要依赖并等待当前拉取请求(PR)之前的拉取请求。A对于您的情况,Bob 希望在处理 PR(已发布但尚未批准)后继续开发/测试基于分支的某些内容。他只需要在分支上开发代码A,然后提交并推送到远程。合并分支A到master的PR将自动包含Bob\xe2\x80\x99s的第二次更改。

\n\n

所以对于多个PR的情况,如果你想更新一个pull request中已经存在的分支,你只需要提交并推送更改,之前的PR就会自动更新。如果要更新不包含在正在处理的 PR 中的分支,则需要提交并推送更改,然后创建新的 PR,并且对之前正在处理的 PR 没有影响。

\n\n

如果您只想添加一些微小的更改或功能本身,您应该在分支 A 上进行更改并使用处理 PR。如果您需要开发新功能,您应该在新功能分支上进行更改并创建新的 PR。

\n\n

对于 Bob\xe2\x80\x99s 的情况,开发新功能需要在分支上使用辅助函数A,因此他应该BA甚至A尚未审查的分支中派生分支。因为开发者需要考虑如何开发新功能,而在之前的 PR 获得批准之前,开发新功能的效率并不高。或者,如果您的团队确实需要使用这种方式,您仍然可以根据您的需求BA分支 B 派生并重新建立基础。

\n