我非常喜欢Micah Henning在有关该主题的文章中的方式(请参阅设置Git身份)。他对每个已创建/克隆的存储库应用并强制使用该身份这一事实是一个不错的方法,不要忘记每次都进行设置。
基本的git配置
在git中取消设置当前用户配置:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
在每个新的本地存储库上强制配置身份:
$ git config --global user.useConfigOnly true
为identity
命令创建Git别名,我们将在以后使用:
$ git config --global alias.identity '! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; git config user.signingkey "$(git config user.$1.signingkey)"; :'
身份创建
使用GPG创建一个标识(使用gpg
或gpg2
取决于您在系统上获得的内容)。对您要使用的每个身份重复以下步骤。
注意:[keyid]
这是创建的密钥的标识符。这里的例子:
sec rsa4096/8A5C011E4CE081A5 2020-06-09 [SC] [expires: 2021-06-09]
CCC470AE787C057557F421488C4C951E4CE081A5
uid [ultimate] Your Name <youremail@domain>
ssb rsa4096/1EA965889861C1C0 2020-06-09 [E] [expires: 2021-06-09]
8A5C011E4CE081A5
后面的部分sec rsa4096/
是密钥的标识符。
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
复制公共密钥块并将其作为GPG密钥添加到GitHub / GitProviderOfChoice设置中。
向Git配置添加身份。对要添加的每个标识也重复此操作:
注:这里我使用gitlab
到的名字我的身份,但是从你的问题它可以是任何东西,例如:gitolite
或者github
,work
等等。
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
存储库的设置标识
如果新的回购没有关联的身份,则提交时将出现错误,提示您进行设置。
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
在新的存储库上指定所需的标识:
$ git identity gitlab
您现在可以使用gitlab身份提交了。