如何基于文件夹路径配置Git,仅让特定目录下的GitHub提交通过SSH签名获取Verified徽章
如何基于文件夹路径配置Git,仅让特定目录下的GitHub提交通过SSH签名获取Verified徽章

我来帮你搞定这个需求!你想要的是基于文件夹路径自动切换Git配置,让工作目录用工作邮箱且不签名提交,个人目录用GitHub绑定邮箱并通过SSH签名拿到Verified徽章,完全不用手动挨个配置每个仓库对吧?这可以通过Git的includeIf特性轻松实现,下面一步步来操作:
1. 准备前提
首先确保你已经生成了用于GitHub签名的SSH密钥,并且已经把公钥添加到你的GitHub账户中了——这是拿到Verified徽章的基础哦。
2. 编辑全局Git配置文件
打开你的全局Git配置文件(一般是~/.gitconfig,Windows用户路径是C:\Users\<你的用户名>\.gitconfig),添加以下内容:
[user] # 全局兜底配置,随便填个默认值就行,或者留空也可 name = 你的全名 email = default@example.com # 匹配~/work下所有子目录的Git仓库,加载工作配置 [includeIf "gitdir:~/work/**"] path = ~/.gitconfig-work # 匹配~/perso下所有子目录的Git仓库,加载个人GitHub配置 [includeIf "gitdir:~/perso/**"] path = ~/.gitconfig-perso
3. 创建工作目录专属配置文件
新建~/.gitconfig-work文件,填入工作环境的配置:
[user] name = 你的工作全名 email = 你的工作邮箱@company.com # 工作仓库不需要签名,所以不用加签名相关配置
4. 创建个人GitHub专属配置文件
新建~/.gitconfig-perso文件,这里重点配置SSH签名:
[user] name = 你的GitHub显示全名 email = 你的GitHub绑定邮箱@example.com [commit] # 开启提交签名 gpgSign = true [gpg] # 指定用SSH密钥签名(而不是传统GPG密钥) format = ssh [user] # 填你的SSH公钥指纹,或者公钥文件路径 # 指纹可以用命令获取:ssh-keygen -lf ~/.ssh/id_ed25519.pub signingkey = ~/.ssh/id_ed25519.pub
5. 验证配置是否生效
进入~/work下的任意工作仓库,运行:
git config --list --show-origin
检查输出里的user.email是不是你的工作邮箱,且没有commit.gpgsign相关配置。
再进入~/perso下的任意个人GitHub仓库,同样运行上面的命令,确认:
user.email是你的GitHub绑定邮箱commit.gpgsign的值是truegpg.format的值是ssh
这样配置完成后,你在对应目录下的仓库提交时,Git会自动套用对应的配置,个人仓库的提交就会被GitHub标记为Verified啦!
备注:内容来源于stack exchange,提问作者ZecKa
相关产品推荐
相关产品推荐

