在GitHub上强制执行最新的拉取请求

时间:2019-04-19 05:42:53

标签: git github pull-request

我们的团队在GitHub上拥有一个master分支以及其他一些功能分支,最终需要将它们合并回master。

在GitHub上创建请求请求之前,应该怎么做才能确保功能分支是最新的?在创建请求请求之前,是否可以在master分支上实施某种锁以实施最新的功能分支?

2 个答案:

答案 0 :(得分:0)

我什至不确定您在这里是否需要任何此类功能。如果某个功能分支与master分支的确距离太远,以至于合并PR会导致合并冲突,那么GitHub将标记该请求并拒绝自动完成请求。

当然,作为实践,大多数开发人员将从经验中了解到与master合并/重新定级是通常的好习惯。但是,至少在默认情况下,这些事情已经由GitHub强制执行。

答案 1 :(得分:0)

GitHub的分支保护可能要求分支合并之前是最新的,但分支创建之前不需要。这是有道理的。考虑:

*---*---*---*  [master]
            |\
            | *---*---*  [feature-1]
             \
              *---*  [feature-2]

此处,feature-1feature-2相对于master是最新的。如果限制要求拉取请求在创建时是最新的,我们可以为每个分支创建PR。

但是当这些PR之一合并时会发生什么?

*---*---*---*-----------*  [master]
            |\         /
            | *---*---*  [feature-1]
             \
              *---*  [feature-2]

现在feature-2不再是最新的。它的公关应该怎么办?自从它是最新的以来,我们不做任何事情吗?我们是否会使PR完全无效,并要求创建一个新的PR?我们应该在任何给定时间只开放一个公关吗?

GitHub的系统在合并时适用。这样,PR可以在准备好合并之前创建(例如draft PRs),并且可以安全地引发有意义的讨论,而不是匆忙进行。这也意味着我们不必处理上一个问题。