一世流流长,边个会唔用到 github, gitlab 噶

Definition

1
2
3
public enum GitAccount {
case gitLab(String), gitHub(String), bitBucket(String)
}

Intro

由于在机器上,难免会遇到这个问题,公司的GitAccount和自己的GitAccount,在SSH KeyGPG Key配置时候的各种问题。

本篇文章不讨论同域多个名账户配置(没找到好方法),即多个GitAccount共存时候SSHGPG的配置。

Tool

你可以使用 TerminalGPG,安装方法

1
brew install gpg

或者使用 GUI 工具GPG-Suite

使用此工具会异常方便,省去很多配置。。。

生成 GPG Key 的步骤在此略过

Configurations

Google 了一下,如无意外 都是

1
2
3
4
5
git config --global gpg.programe "gpg"
git config --global commit.gpgsign "true"
git config --global user.email "xx@xx.com"
git config --global user.name "xxx"
git config --global user.signingkey "xxxxxx"

还有什么配置 GPG-Agent 的,hin 复杂。。。。(所以我选择 GPG-Suite)

这样配置的话会导致不用账户都用该配置,会导致 commit 失败。

Solution

其实可以这样,在~/.gitconfig里面配置一个全局的账户

然后某个 Repository 你是用别的账户的,就可以独自为该 Repo 配置一下

1
2
3
4
5
git config gpg.programe "gpg"
git config commit.gpgsign "true"
git config user.email "xx@xx.com"
git config user.name "xxx"
git config user.signingkey "xxxxxx"

就是把 Global 去掉。。。。。(哈哈哈,就是这么简单明了)

我们可以把这个整理成一个 alias,放在~/.zshrc里面,下次就直接输入就好了

1
alias configgitrepo="git config user.signingkey \"xxxxx\" && git config user.email \"xx@xx.com\" && git config user.name \"xxx\" && git config gpg.programe \"gpg\" && git config commit.gpgsign \"true\""

End

权当记录一下,没啥技术含量