如何在Github中处理对旧拉取请求的新依赖关系?

4

如何处理GitHub上旧拉取请求中的新依赖关系

当您需要更新已存在拉取请求的分支,但该分支已经依赖于未来的分支时

请参见糟糕制作的流程图

http://imgur.com/41uVbQN

细节:

假设您进行了以下操作

feature 1 --> pull request
feature 2 --> pull request
feature 3 --> pull request

客户/老板要求更改功能一,使其依赖于功能二。

现在如果按顺序处理拉取请求 1、2、3,则第一个拉取请求在分支 2 合并之前无法进行测试。

问题是应该如何处理?

我目前的做法是...

告诉客户忽略分支一的拉取请求,并将一和二合并为同一个请求(这仅适用于它们是连续的情况,有时拉取请求不是按顺序的)。

或者

创建一个包含所有更改的新分支,并告诉客户忽略前三个请求。

这似乎很愚蠢,正确的处理方式是什么/你是如何处理它的?


这个回答解决了你的问题吗?处理顺序拉取请求之间依赖的好策略 - Inigo
我建议将问题中有用的部分以及@VonC的答案移动到已经获得更多投票的上面的问题中。 - Inigo
1个回答

1

客户/老板要求更改功能一,使其依赖于功能二

这意味着功能一和功能二现在变成了一个。

您可以将这两个功能分支合并为一个新的功能分支,删除旧分支,并从新功能分支发起拉取请求。
第三个分支没有改变。

从程序员消费拉取请求的角度来看(在原始存储库上),他/她不能询问拉取请求是否依赖于另一个:每个拉取请求必须能够独立测试。


好的,但是前两个拉取请求应该怎么处理?也要删除吗? 当我推送删除的分支时,它们会被删除吗? - hanco ike
@user3304698,正如我在https://dev59.com/FGUq5IYBdhLWcg3wN94t#14681796中提到的那样,如果你在你的repo上使用`git push --force`推送feature1的新历史记录,相关的pull request将自动更新。你可以简单地关闭其他的pull request,并删除它的分支,但这并不是必须的。你不能删除一个pull request(http://www.quora.com/GitHub/What-are-ways-to-delete-a-pull-request-on-GitHub)。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接