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

Good strategy to handle dependencies between sequential pull requests

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

Bob 添加了一些有用的帮助程序 类 cleaning/refactoring 单元测试设置并清理所有现有测试,感谢他们。

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

项目负责人 John 忙了一个星期,因此无法立即审阅。

在请求代码审查后,Bob 想要编写一些全新的测试文件和一组 类 以另一个单独的拉取请求结束,因为它被认为是在处理新功能。
显然,Bob 想使用他的新助手来处理这些测试文件。

采用哪种策略:

处​​理多个串联拉取请求之间的依赖关系的最佳做法是什么?

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

所以对于多个PR的情况,如果你想更新已经在pull request中的分支,你只需要commit & push changes,之前的PR可以自动更新。 如果要更新一个processing PR中不包含的branch,需要commit & push changes然后新建一个PR,对之前的processing PR没有影响.

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

对于Bob的情况,正在开发新功能,需要在分支A上使用助手,所以他应该从A派生分支B,即使A没有被审查然而。因为开发人员需要考虑如何开发新功能,而在之前的 PR 获得批准之前,开发新功能是没有效率的。或者,如果您的团队确实需要使用这种方式,您仍然可以从 A 派生 B 并根据需要重新设置分支 B。