5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHubで複数のコミットメールアドレスを使い分ける

Last updated at Posted at 2023-07-24

GitHubでは、個人用と仕事用とで同じGitHubアカウントを使うことが推奨されています。たとえば、「複数の個人アカウントのマージ - GitHub Docs」にヒントとして書かれています。

一方、Gitのコミットにはメールアドレスが記録されます。そのため、個人用のコミットには個人用のメールアドレスを使い、仕事用のコミットには仕事用のメールアドレスを使いたくなります。そこで、GitHubで複数のメールアドレスを使い分ける方法を紹介します。

なお、これらの内容はGitHubのドキュメントに書いてあります。この記事内からもリンクを張っています。

GitHubへのメールアドレスの追加

GitHubアカウントには、複数のメールアドレスを登録できます。

アカウントの「Settings」→「Emails」にある「Add email address」から、メールアドレスを追加できます。これは「GitHub アカウントへのメールアドレスの追加 - GitHub Docs」に書いてあります。

こうしてメールアドレスを登録しておけば、そのメールアドレスを使ったコミットがGitHubのWeb上でアカウントと関連付けられます。

<余談>
なお、ひとつのメールアドレスはひとつのGitHubアカウントにのみ登録できます。メールアドレスを別のGitHubアカウントと関連付けたい場合は、そのメールアドレスをいったんGitHubアカウントから登録解除する必要があります。

Web操作時のコミットメールアドレスの設定

複数のメールアドレスを登録しておくと、GitHubのWebベースでのGitコミットの際に、どのメールアドレスを使って操作するかを選択できます。

ただしこのためには、「Settings」→「Emails」にある「Keep my email address private」をオフに設定しておく必要があります。

<余談>
なお、「Keep my email address private」は、登録したメールアドレスを直接使わないようにする設定です。これをオンにした場合、WebベースでのGit操作に対して「ID+USERNAME@users.noreply.github.com」という形式のメールアドレスが使われます。

Gitクライアントのコミットメールアドレスの設定

WebでなくローカルのGitクライアントからコミットする場合に、どのメールアドレスを使うかを設定できます。

そのパソコンでのGitコミットに使うデフォルトのメールアドレスを設定するには、次のようにします。この設定は、~/.gitconfigに保存されます。

git config --global user.email "YOUR_EMAIL"

また、特定のリポジトリでのGitコミットに使うメールアドレスを設定するには、次のようにします。この設定は、そのリポジトリの .git/configに保存されます。

git config user.email "YOUR_EMAIL"

これは「コミットメールアドレスを設定する - GitHub Docs」に書いてあります。

リポジトリごとに設定を切り替える方法として、git configの includeIf を使う方法もあります。この機能はgit configのドキュメントの「Conditional includes」に記載されています。たとえば、特定のリモートリポジトリのURLにマッチしたら別の設定ファイルを読み込むように設定できます。

[includeIf "hasconfig:remote.*.url:git@github.com:mycompany/**"]
  path = ~/.gitconfig_mycompany

GnuPG署名の設定

GitコミットにはGnuPGによるデジタル署名ができます。これは「GitのコミットにGnuPGで署名する - Qiita」という記事で紹介しています。このGnuPG署名もコミットメールアドレスと関連付けされています。

そのため、複数のメールアドレスを使い分ける場合にはそれらのメールアドレスに紐づいたGnuPGキーを用意する必要があります。対応方法は2通りあります。

  • 複数のメールアドレスをひとつのGnuPGキーに紐づける
  • 複数のメールアドレスに対してそれぞれGnuPGキーを作成する

前者のほうが、複数のGnuPGキーを扱わずにすむため管理しやすくなります。

ひとつのGnuPGキーへの複数のメールアドレスの関連付け

複数のメールアドレスをひとつのGnuPGキーに紐づけるには、まずひとつのメールアドレスに対してGnuPGキーを作成します。次に、そのGnuPGキーに対してメールアドレスの関連付けを追加します。

関連付けの追加は gpg --edit-key コマンドで行います。この詳細は「GPG キーとメールの関連付け - GitHub Docs」に書いてあります。

それ以外は「GitのコミットにGnuPGで署名する - Qiita」で記載しているとおりです。

複数のGnuPGキーを扱う場合の設定

基本的には前述の方法が管理しやすいためオススメですが、複数のGnuPGキーを扱うパターンも紹介しておきます。

複数のメールアドレスに対してそれぞれGnuPGキーを作成するには、GnuPGキーの作成手順を必要な数だけ繰り返します。ひとつのGitHubアカウントには複数のGnuPGキーが登録できます。

そのパソコンでのGitコミットに使うデフォルトのGnuPG署名キーを設定するには、次のようにします。この設定は、~/.gitconfigに保存されます。

git config --global user.signingkey "YOUR_GPG_KEY_ID"

また、特定のリポジトリでのGitコミットに使うGnuPG署名キーを設定するには、次のようにします。この設定は、そのリポジトリの .git/configに保存されます。

git config user.signingkey "YOUR_GPG_KEY_ID"

これは「Git へ署名キーを伝える - GitHub Docs」に書いてあります。

まとめ

以上の内容を設定すれば、GitHubで複数のメールアドレスを使い分けることができます。

これを利用して、個人用のコミットには個人用のメールアドレスを使い、仕事用のコミットには仕事用のメールアドレスを使うことができます。ぜひ活用してください。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?