关于必需状态检查
必需状态检查确保在协作者可以对受保护分支进行更改前,所有必需的 CI 测试都已通过。
受保护分支可用于具有 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。
如果您在仓库中实施了分支保护,便可设置必需状态检查。 更多信息请参阅“配置受保护分支”和“启用必需状态检查”。必须状态检查可以是检查或状态。 更多信息请参阅“关于状态检查”。
在启用必需状态检查后,必须通过所有必需状态检查后,分支才可合并到受保护分支。 任何提交都必须推送到另一个分支,在通过所有必需状态检查后合并或直接推送到受保护分支。
注:对仓库具有写入权限的任何个人或集成可以在仓库中设置任何状态检查的状态。 GitHub Enterprise 无法验证检查的作者是否被授权创建具有特定名称的检查或修改现有状态。 在合并拉取请求之前,应验证合并框中所列的每个状态的作者是否为预期的作者。
如果您有名称相同的检查和状态,并且选择该名称作为必需状态检查,则检查和状态都是必需的。 更多信息请参阅 GitHub 开发者文档中的“Checks”。
在设置必需状态检查后,您的分支在合并之前必须使用基本分支更新。 这可确保您的分支已经使用基本分支的最新代码做过测试。 如果您的分支过期,则需要将基本分支合并到您的分支。
注:您也可以使用 Git 变基以基本分支更新您的分支。
在通过所有必需状态检查之前,无法向受保护分支推送本地更改。 反而会收到类似如下的错误消息:
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "ci-build" is failing
注:最新且通过必需状态检查的拉取请求可以本地合并,并且推送到受保护分支。 此操作无需对合并提交本身运行状态检查。
即使必需状态检查失败或待处理,仓库管理员也可以合并受保护分支。 您可以要求管理员遵循必需状态检查。
即使受保护分支过期,管理员也可使用基本分支合并该分支。
根据您是否希望在合并前使用基本分支更新您的分支,您可以设置宽松或严格的状态检查。
延伸阅读
- "关于状态检查"