You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否设置Git主分支在指定时段(如1小时)禁止合并PR?

临时禁止PR合并至Master分支的解决方案

1. 托管平台分支保护规则(主流平台通用)

大部分Git托管平台(GitHub、GitLab、Gitee等)都支持分支级别的临时防护:

  • 进入仓库分支设置页,找到master分支的保护配置
  • 临时启用**"禁止直接推送/合并至该分支",或者开启"必须通过指定审核者审核才能合并"**,并设置一个暂时不会通过审核的账号作为审核人
  • 部分平台(如GitLab)支持设置规则生效时间段,直接配置当前起1小时内的保护规则即可,到期自动失效

2. 自建Git服务器:用pre-receive钩子拦截

如果是私有自建Git服务器,可通过服务器端钩子临时阻止合并:

  1. 进入仓库的.git/hooks目录
  2. 创建pre-receive脚本文件,写入以下内容:
#!/bin/bash
# 计算1小时后的时间戳
block_end=$(( $(date +%s) + 3600 ))

while read oldrev newrev refname; do
    # 仅拦截master分支的合并/推送
    if [[ $refname == "refs/heads/master" ]]; then
        if [[ $(date +%s) -lt $block_end ]]; then
            echo "拒绝操作:当前处于临时保护时段,1小时后允许合并至master"
            exit 1
        fi
    fi
done
exit 0
  1. 给脚本添加执行权限:chmod +x pre-receive
  2. 1小时后,删除或重命名该钩子文件即可恢复正常

3. 直接锁定master分支

部分平台支持一键锁定分支:

  • GitHub:在分支列表找到master,点击"Lock branch"锁定,到期后点击"Unlock branch"解除
  • GitLab:在分支保护设置中开启"Lock branch"选项,临时禁用所有对master的写入操作

注意:所有临时限制记得在1小时后及时解除,避免阻塞正常开发流程。

内容的提问来源于stack exchange,提问作者kfsopdf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:32:39