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

如何在SCM-Manager中阻止git_playground仓库所有分支的强制推送?

解决SCM-Manager中Git仓库禁止强制推送的问题

我来帮你搞定这个禁止强制推送的配置问题!你之前遇到的克隆失败,是因为把配置放错了节点导致的,下面给你详细的正确操作步骤:

一、为什么之前的配置会导致克隆失败?

你把receive.denyNonFastForwards = true放在了[core]节点下,这是错误的——这个配置项属于[receive]专属节点,放在core里会让Git识别为无效的仓库配置,进而导致仓库状态异常,自然就无法克隆了。

二、正确的配置方法

方法1:手动修改服务器端仓库的Git配置

直接修改目标仓库的Git配置文件,步骤如下:

  • 登录到Git服务器,找到git_playground仓库的存储目录,进入仓库内的.git文件夹
  • 编辑config文件,添加或修改[receive]节点:
    [receive]
        denyNonFastForwards = true
    
  • 保存文件即可,这个配置只会限制推送操作,不会影响仓库的克隆功能。

方法2:通过SCM-Manager可视化界面配置(更推荐)

既然你用的是SCM-Manager,直接用后台界面配置更简单,还能避免手动编辑出错:

  • 登录SCM-Manager后台,找到git_playground仓库,进入仓库的设置页面
  • 在设置中找到「Git」相关的配置板块,找到名为Deny Non-Fast-Forwards(或中文翻译「拒绝非快进推送」)的选项
  • 勾选该选项并保存设置,SCM-Manager会自动帮你在仓库的Git配置中添加正确的receive.denyNonFastForwards配置

三、验证配置是否生效

配置完成后,你可以在本地测试强制推送:

git push -f origin <你的分支名>

如果配置生效,服务器会返回类似如下的错误提示,说明强制推送已被阻止:

remote: error: denying non-fast-forward refs/heads/<分支名> (you should pull first)
To <仓库地址>
! [remote rejected] <分支名> -> <分支名> (non-fast-forward update denied)
error: failed to push some refs to '<仓库地址>'

内容的提问来源于stack exchange,提问作者soundararajan.c

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:34:39