Git 的签名和推送密钥不是一回事
这篇文章是在折腾 Git 提交签名和 SSH 推送的时候写的,属于踩坑记录。如果你也遇到过 signed commit 但是 push 被拒的问题,可能对你有帮助。 起因最近在捣鼓 AlephNote 这个项目,想搞一个比较干净的 Git 工作流:writing 分支写东西,然后 merge 到 deploy 分支,再推到远程仓库。 过程中碰到了一个很奇怪的事——我配好了 GPG 签名提交,commit 确实是 signed 的,但 push 的时候居然被拒绝了。一脸懵逼,明明之前没问题的。 后来才发现:Git 的签名(signing)和推送(push)用的密钥根本不是一回事。 两件事,两条线简单来说,你在用 Git 的时候,涉及两种完全不同的认证场景: 1. Commit 签名这玩意儿用来证明”这个 commit 确实是我提交的”。你可以用 GPG 或者 SSH 来签名。 配置方法: 12345# 设置使用 GPG 签名所有提交git config --global commit.gpgSign true# 指定你的签名 Key IDgit config --global us...