このテーマに関する Micah Henning の記事 ( Setting Up Git Identitiesを参照) がとても気に入っています。彼が作成/複製された各リポジトリに ID を適用して強制するという事実は、毎回これを設定することを忘れないための良い方法です。
基本的な git 構成
git で現在のユーザー設定を解除します。
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
新しいローカル リポジトリごとに ID 構成を強制します。
$ 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 を使用して ID を作成します (システムで得たものに応じてgpg
またはを使用します)。gpg2
使用する ID ごとに次の手順を繰り返します。
注:[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 設定に追加します。
ID を Git 構成に追加します。また、追加する ID ごとにこれを繰り返します。
注: ここでは自分の ID に名前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]
リポジトリの ID を設定する
新しいリポジトリに ID が関連付けられていない場合、コミット時にエラーが表示され、設定するように促されます。
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
新しいリポジトリで必要な ID を指定します。
$ git identity gitlab
これで、 gitlab IDでコミットする準備が整いました。