如何给 GitHub commit 加个绿色图标(教程详解)

所属分类: 网络编程 / 相关技巧 阅读数: 613
收藏 0 赞 0 分享

最近一波重装系统啥都没了,最常用的 Git 配置肯定得安排回来的。记得之前给 git 的 commit 加了个签名,回想下为什么要给 commit 做下签名?因为它能让 GitHub 的 commit 历史更帅?看下加签名之前是怎么样的:

在这里插入图片描述

再看下对 commit 签名后是怎么样的:

在这里插入图片描述

这么一对比,是更帅了!但我好像不是因为这的才做的。我是为了更好的去混开源项目做的,这个绿标能更好的证明我的身份!!!(假装我很专业,2333~)。使用过 Git 的同学应该都晓得,我们的提交作者信息是可以自己设置的(这意味着我们可以使用他人身份信息),如下:

$ git config user.name "tester"
$ git config user.email gg@qq.com

在这里插入图片描述

我们可以看到,是可以 push 到 GitHub 的[没有小绿标而已]。这看起来就不太好,得让 GitHub 证明下自己得身份才行,从官方文档可以看到, GitHub 提供了一种使用 GPG 的方式可以让我们的 commit “戴”上小绿标。

忘了当初是怎么操作的了,在 Windows 下操作貌似还挺麻烦的,趁此捋一下过程,趁机水篇文章。

GNU Privacy Guard(GnuPG或GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。

生成 GPG 密钥对

第一步肯定就是通过 GPG 生成密钥对了。这时候需要到一个 GnuPG 软件,OK,去下载:🔐GnuPG。其实 Git fot windows 自带一个 gpg 命令行程序,但是命令行用多了,还是上 GUI 愉快点吧,我们选择使用带 GUI 的 Gpg4win🔗。

在这里插入图片描述

我们通过全家桶软件之 Kleopatra 新建立一对密钥,名字为 GitHub 用户名,邮箱为 GitHub 的注册邮箱(使用 4096 bits的密钥):

在这里插入图片描述
在这里插入图片描述

设置 passphrase (通行口令)来保护我们的密钥对,每次签名都会用它到。(也可以不设置,不用口令验证就可以直接使用密钥)

在这里插入图片描述

好了,密钥对生成完毕。下一步,就是把把公钥放到 GitHub 上,让 GitHub 对我们的提交进行验证,判断是否该给 commit “戴”上小绿标。[获取公钥:鼠标右键->细节->导出]、[GitHub 添加公钥:Settings->SSH and GPG keys]。

在这里插入图片描述

下一步就是开启 Git 提交签名。

启用 Git 提交签名

首先,我们需要让 Git 知道 gpg 的可执行程序在哪里?gpg 的可执行程序位于Gpg4win🔗同级目录下的GnuPG/bin中(GnuPG 是 Gpg4win 组件之一),我们需要进行如下配置:

$ git config --global gpg.program <path_to_gpg>

我的设置如下:

$ where gpg
E:\Git\usr\bin\gpg.exe # 这个是 Git for windows 自带的
E:\GnuPG\bin\gpg.exe # 这个才是我们要用的
$ git config --global gpg.program "E:\GnuPG\bin\gpg.exe"

然后每次git commit时,加上-S即可启用签名。

在这里插入图片描述

每次都要多打个参数多麻烦,我们通过如下配置让 Git 默认启用 GPG 签名:

$ git config --global commit.gpgsign true

最后我们git push一下看看有没有效果。
https://github.com/yeshan333/anonymous-git-commit/commits/master

在这里插入图片描述

没问题,收工了。我的 Git 全局配置如下:

$ cat ~/.gitconfig
[user]
  name = yeshan333
  email = 1329441308@qq.com
[gpg]
  program = E:\\GnuPG\\bin\\gpg.exe
[commit]
  gpgsign = true
更多精彩内容其他人还在看

使用Python解决Windows文件名非用反斜杠问题(python 小技巧)

要想让你的 Python 代码同时在 Windows 和 Mac/Linux 上工作,你需要处理不同系统文件名用不同斜杠的问题。而 Python 3 有一个名为「pathlib」的新模块,可以帮你解决这个麻烦,需要的朋友可以参考下
收藏 0 赞 0 分享

VSCode 使用Settings Sync同步配置(最新版教程,非常简单)

这篇文章主要介绍了VSCode 使用Settings Sync同步配置(最新版教程,非常简单),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

重装win10系统超详细的图文教程(适用所有windows系统)

这篇文章主要介绍了重装win10系统超详细的图文教程(适用所有windows系统),非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

ReactJS中的自定义组件实例代码

React 是一个用于构建用户界面的 JAVASCRIPT 库。这篇文章主要介绍了ReactJS中的自定义组件的代码讲解,需要的朋友可以参考下
收藏 0 赞 0 分享

在命令行用 sort 进行排序的方法

这篇文章主要介绍了在命令行用 sort 进行排序的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

scala中停止循环的三种方式(推荐)

这篇文章主要介绍了scala中停止循环的三种方式,文中给大家提到了循环语句的流程图,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

深入讲解HTTPS中的加密算法

前段时间对接了好多外部接口,很多都是https的,还有证书,还有一些加密的。对这块不是太了解,就查资料整理总结实践下。下面这篇文章主要给大家深入的介绍了关于HTTPS中加密算法的相关资料,需要的朋友可以参考下。
收藏 0 赞 0 分享

HTTP协议简介_动力节点Java学院整理

这篇文章主要介绍了HTTP协议简介,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

HTTP协议入门_动力节点Java学院整理

这篇文章主要为大家详细介绍了HTTP协议入门的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

HTTP协议详解_动力节点Java学院整理

这篇文章主要介绍了HTTP协议详解,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器
收藏 0 赞 0 分享
查看更多