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

如何阻止PhpStorm在提交信息末尾添加Signed-off-by行?

解决PhpStorm自动追加Signed-off-by提交信息的问题

从你描述的情况和给出的Git配置来看,核心问题是PhpStorm的「Sign-off commit」勾选框会强制触发Git的签名行为,哪怕你已经设置了format.signoff=false。下面给你两种解决方案,按需选择:

1. 直接关闭PhpStorm的默认签名选项

最直接的方法就是让PhpStorm不再主动触发签名行为:

  • 打开PhpStorm的设置(快捷键:Windows/Linux用Ctrl+Alt+S,Mac用Cmd+,)
  • 导航到 Version Control → Commit
  • 在右侧的「Commit Options」区域,找到「Sign-off commit」复选框,取消勾选
  • 点击「Apply」和「OK」保存设置

这样以后提交代码时,除非你手动勾选这个选项,否则PhpStorm不会自动添加Signed-off-by行。如果你完全不想碰这个选项,保持未勾选状态就好。

2. 用Git钩子彻底禁止签名行(强制生效)

如果担心自己偶尔会误勾选PhpStorm的选项,或者想让git commit --signoff命令也失效,可以用Git的commit-msg钩子自动移除签名行:

  1. 进入项目根目录下的.git/hooks文件夹
  2. 创建一个名为commit-msg的无后缀文件,写入以下内容:
#!/bin/sh
# 自动移除提交信息中的Signed-off-by行
sed -i '/^Signed-off-by:/d' "$1"
  1. 给文件添加可执行权限:
chmod +x .git/hooks/commit-msg

这个钩子会在每次提交前自动清理掉提交信息里的Signed-off-by行,不管是通过PhpStorm还是命令行触发的签名操作,都能生效。

验证效果

设置完成后可以测试一下:

  • 在PhpStorm里勾选「Sign-off commit」提交,查看提交记录确认没有Signed-off-by行
  • 用命令行执行git commit --signoff -m "测试提交",再用git log --oneline查看提交信息,确认签名行已被移除

这样就能彻底解决你的问题啦。


内容的提问来源于stack exchange,提问作者A.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:53:42