このテーマに関する彼の記事(Git IDの設定を参照)でのMicah Henningのやり方がとても気に入っています。作成または複製された各リポジトリーに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でコミットする準備ができました。