? ? ? ? 使用 GPG 對 Git 提交進行簽名,可以證明該提交確實是你本人提交的。這在團隊協作和代碼審核中非常有用,GitHub/GitLab 等平臺也會顯示 “Verified” 標簽。
🧩 一、檢查是否已安裝 GPG
gpg --version
如果未安裝,可使用以下命令安裝:
Ubuntu/Debian:
sudo apt install gnupg
CentOS/RHEL:
sudo yum install gnupg
macOS:
brew install gnupg
🔐 二、生成 GPG 密鑰
gpg --full-generate-key
根據提示選擇:
-
密鑰類型: 選擇默認(RSA and RSA)
-
密鑰長度: 建議使用
4096
-
有效期限: 如
1y
(一年),或0
(永久有效) -
名字和郵箱: 建議與 Git 使用的保持一致
-
密碼: 用于保護私鑰,強烈建議設置
📋 三、查看你的 GPG 密鑰 ID
gpg --list-secret-keys --keyid-format=long
你需要記下你的ID,假設為ABCDEF1234567890
(這就是你的 GPG key ID)
?? 四、配置 Git 使用該密鑰
git config --global user.signingkey ABCDEF1234567890
設置默認使用 GPG 簽名提交:
git config --global commit.gpgsign true
指定 GPG 程序(系統上用哪個就配置哪個):
git config --global gpg.program gpg
# 或者
git config --global gpg.program gpg2
🧪 五、測試是否能簽名
echo "test" | gpg --clearsign
如果提示你輸入密碼并生成了簽名文本,就表示配置成功。
🖥? 六、解決 GPG 無法輸入密碼的問題
有些終端環境下 GPG 無法彈出密碼輸入窗口,可指定 pinentry
程序:
vim ~/.gnupg/gpg.conf
增加一行:
pinentry-mode loopback
然后
gpgconf --kill gpg-agentgpgconf --launch gpg-agent
🌐 七、將 GPG 公鑰添加到 GitHub(或 GitLab)
導出公鑰:
gpg --armor --export ABCDEF1234567890
復制輸出內容,添加到:
-
GitHub: https://github.com/settings/keys
-
GitLab: 用戶頭像 → Settings → GPG Keys
🔎 八、調試排錯常用命令
-
查看當前 Git 配置:
-
git config --list | grep gpg
-
臨時跳過 GPG 簽名提交:
git commit --no-gpg-sign
-
永久關閉簽名提交:
git config --global commit.gpgsign false