Git与GPG自动提交签名失效问题排查求助
Git全局自动GPG签名不生效的解决方案
你遇到的问题我之前也碰到过——手动用git commit -S能正常签名提交,但明明全局配置了commit.gpgsign = true,自动签名就是不生效,而且你的.gitconfig配置看起来完全没问题。
其实核心原因是你当前的Git版本太旧了,CentOS默认仓库里的Git版本通常比较滞后,而全局自动签名的commit.gpgsign配置在较老的Git版本里可能存在兼容性问题,甚至不支持完整的自动签名逻辑。
解决步骤(CentOS环境)
要解决这个问题,你需要把Git更新到最新稳定版,具体操作如下:
- 先卸载旧版本的Git:
sudo yum remove git -y - 安装编译Git所需的依赖包:
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y - 下载最新版Git的源码包(可前往Git官网确认最新版本号,示例使用2.45.1版本):
cd /usr/src sudo wget https://www.kernel.org/pub/software/scm/git/git-2.45.1.tar.gz - 解压源码包:
sudo tar xzf git-2.45.1.tar.gz - 编译并安装Git:
cd git-2.45.1 sudo make prefix=/usr/local/git all sudo make prefix=/usr/local/git install - 配置环境变量,让系统优先调用新安装的Git:
echo "export PATH=/usr/local/git/bin:$PATH" >> ~/.bashrc source ~/.bashrc - 验证Git版本是否更新成功:
git --version
更新完成后,你再尝试提交代码,不需要加-S参数,Git就会自动用你配置的GPG密钥签名提交了。
内容的提问来源于stack exchange,提问作者NickS
相关产品推荐
相关产品推荐

