Git 配置 GPG 提交签名

使用 GPG 对 Git 提交进行签名,可以证明该提交确实是你本人提交的。这在团队协作和代码审核中非常有用,GitHub/GitLab 等平台也会显示 "Verified" 标签。


🧩 一、检查是否已安装 GPG

bash 复制代码
gpg --version

如果未安装,可使用以下命令安装:

Ubuntu/Debian:

bash 复制代码
sudo apt install gnupg

CentOS/RHEL:

bash 复制代码
sudo yum install gnupg
复制代码
macOS:
bash 复制代码
brew install gnupg

🔐 二、生成 GPG 密钥

bash 复制代码
gpg --full-generate-key

根据提示选择:

  1. 密钥类型: 选择默认(RSA and RSA)

  2. 密钥长度: 建议使用 4096

  3. 有效期限:1y(一年),或 0(永久有效)

  4. 名字和邮箱: 建议与 Git 使用的保持一致

  5. 密码: 用于保护私钥,强烈建议设置


📋 三、查看你的 GPG 密钥 ID

bash 复制代码
gpg --list-secret-keys --keyid-format=long
复制代码
你需要记下你的ID,假设为ABCDEF1234567890(这就是你的 GPG key ID)

⚙️ 四、配置 Git 使用该密钥

bash 复制代码
git config --global user.signingkey ABCDEF1234567890

设置默认使用 GPG 签名提交:

bash 复制代码
git config --global commit.gpgsign true

指定 GPG 程序(系统上用哪个就配置哪个):

bash 复制代码
git config --global gpg.program gpg

# 或者

bash 复制代码
git config --global gpg.program gpg2

🧪 五、测试是否能签名

bash 复制代码
echo "test" | gpg --clearsign

如果提示你输入密码并生成了签名文本,就表示配置成功。


🖥️ 六、解决 GPG 无法输入密码的问题

有些终端环境下 GPG 无法弹出密码输入窗口,可指定 pinentry 程序:

bash 复制代码
vim ~/.gnupg/gpg.conf
复制代码
增加一行:
bash 复制代码
pinentry-mode loopback

然后

bash 复制代码
 gpgconf --kill gpg-agent
 gpgconf --launch gpg-agent

🌐 七、将 GPG 公钥添加到 GitHub(或 GitLab)

导出公钥:

bash 复制代码
gpg --armor --export ABCDEF1234567890

复制输出内容,添加到:


🔎 八、调试排错常用命令

  • 查看当前 Git 配置:

bash 复制代码
git config --list | grep gpg
  • 临时跳过 GPG 签名提交:

    bash 复制代码
    git commit --no-gpg-sign
  • 永久关闭签名提交:

    bash 复制代码
    git config --global commit.gpgsign false
相关推荐
前端小干将27 分钟前
开发过程中,git常用命令
git
西柚啊1 小时前
Git常用命令总结
前端·git
李艺为6 小时前
Ubuntu下展锐刷机工具spd_dump使用说明
android·linux·git·ubuntu
掘根12 小时前
Git分支管理
git
极小狐12 小时前
极狐GitLab 项目 API 的速率限制如何设置?
大数据·运维·git·elasticsearch·gitlab
残月只会敲键盘12 小时前
Git 命令速查手册
大数据·git·elasticsearch
掘金沸点顶流14 小时前
同一台电脑配置多个 git 账户(github, gitee, gitlab等)
git
苦逼IT运维17 小时前
Git LFS 学习笔记:原理、配置、实践与心路历程
笔记·git·学习
jstart千语19 小时前
【版本控制】idea中使用git
java·ide·git·intellij-idea·intellij idea