Windows10でGitHubを始める～③'おまけユーザ名・メールアドレス設定について詳細

個人学習メモ。

# 1.GitHubのEmailsで設定するメールアドレスについて
## 1-1.[Settings]-[Emails]の「Primary」メールアドレス
GitHubにログインし、アイコンをクリックし[Settings]-[Emails]から確認できる「Primary」メールアドレスは、 **GitHubからの通知に使うメールアドレス** である。
ここのメールアドレスは「Add email address」で複数追加することができ、主たる **GitHubからの通知に使うメールアドレス** は「Primary email address」で「Primary」として設定しておく必要がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/692e4f14-2389-e301-9956-ff34624f3ae0.png)

こうすると、GitHubからの通知やパスワード再設定時のメールアドレスはPrimaryとした方のメールアドレスに通知されるようになる。

## 1-2.GitHub Web UIからのコミット操作に紐づくメールアドレス
GitHubはWeb UIからもコミット操作が可能だが、その際使われるメールアドレスは基本的に「Primary email address」に設定したメールアドレスが使われる。
「Keep my email addresses private」のチェックボックスをオンにすると、どのリポジトリでWeb UIからコミットしても、紐づくメールアドレスはGitHub提供の非公開用のダミーメールアドレス```***@users.noreply.github.com``` となる。

## 1-3.所属する組織（Organization）ごとに通知メールアドレス先を変えたい場合
自身が所属する組織（Organization）のリポジトリからの通知を別のメールアドレスで受信したい場合は、

 - 別のメールアドレスを[Settings]-[Emails]の「Add email address」で追加しておく
 - [Settings]-[Notifications]の「Custom routing」で、自身が所属する組織（Organization）リポジトリからの通知を受信したいメールアドレスを設定

することで、通知受信メールアドレスを分けることができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/eb0abd54-d786-d6b1-fd3f-0751c8f06c2d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/bb777bd7-d72a-b9a0-4fb9-663050ea170f.png)

# 2.手元のWindows10端末にインストールしたGitクライアントで設定するメールアドレスについて

[前回の記事「Windows10でGitHubを始める～③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定」手順2-1](https://qiita.com/emiki/items/4103150a5d7a7cfbff24#2-1%E6%89%8B%E5%85%83windows10%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9Fgit%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E5%90%8D%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A)で設定したGitクライアント側からコマンドで設定したメールアドレスについて。

## 2-1.「git config --global user.email ～」で設定したメールアドレスについて
[前回の記事「Windows10でGitHubを始める～③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定」手順2-1](https://qiita.com/emiki/items/4103150a5d7a7cfbff24#2-1%E6%89%8B%E5%85%83windows10%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9Fgit%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E5%90%8D%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A)では以下のコマンドでメールアドレスを設定した。

```
git config --global user.email "GitHub提供の非公開用メールアドレス"
```

このコマンドで設定される内容は、ホームディレクトリに生成されている「.gitconfig」というファイル内に追記される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/50c80360-38f7-8f28-3e01-9c1bf61ff089.png)
Visual Studio Codeで開くと↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/1ec68105-f59e-feb0-ac5d-159f9ec52529.png)

この「.gitconfig」は **Gitの設定** であり、`git config`コマンドで設定したり内容を参照することができる。これは「gitconfig」とか「gitのconfig」とか呼ばれていて、他にも種類があり、3段階に分かれている。

 - gitconfigの種類
   - システム全体に作用する`system`のconfig
   - ユーザ全体に作用する`global`のconfig
   - 対象リポジトリのみに作用する`local`のconfig

設定はsystem⇒global⇒localの順に読み込まれ、最後に読み込まれた設定で上書きされるため、よりスコープの狭い設定が有効になる。[前回の記事「Windows10でGitHubを始める～③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定」手順2-1](https://qiita.com/emiki/items/4103150a5d7a7cfbff24#2-1%E6%89%8B%E5%85%83windows10%E7%AB%AF%E6%9C%AB%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9Fgit%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E5%90%8D%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A)で設定したのはこの中の`global`にあたる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/4493236a-55e2-7461-5769-4dc5e81672e0.png)

システムデフォルトである`system`を変更するケースはあまりないらしい。基本的にメインで使用するメールアドレスは`global`で設定し、リポジトリごとに細かくコミットアドレスを制御する必要がある場合はリポジトリごとに`local`を設定すればよい。

※詳細は「git config　設定」などでググるとたくさん情報がある。参考にも貼っておく。

## 2-2.GitHub提供の非公開用ダミーメールアドレスを使用した場合
GitHubはCommitter（コミットした人）の判別に、Gitクライアントのgit configで設定されたメールアドレスを使用する。git configで設定されたメールアドレスがGitHub上に登録されているメールアドレスでないと、GitHub上のログに本人のアバターが出ない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/32a69f93-9079-26d6-43a0-8c4c4e30fb2c.png)

しかし、git configで設定した自分のメールアドレスはGitHubにpushしたときコミット履歴に残る。これは吸い出すことも可能で、吸い出す用のツールもあるらしい。
メールアドレスを設定しないとコミット履歴に自分のアバターもメールアドレスも残らず、誰が変更したのかわからない。
そこでGitHub提供の非公開用ダミーメールアドレスを使用すれば、自分のメールアドレスを公開することなく、コミット履歴に自分のアバターが表示され誰が変更したのか分かるようにできる。

※ユーザ名・メールアドレスをGitHubアカウント作成時に登録もの以外でコミットしてGitHub上のリモートリポジトリにpushしたときどう表示されるのかはまだ試していない。

# 参考
[Windows10でGitHubを始める～⓪Gitの概念とインストールソフトの種類](https://qiita.com/emiki/items/5c8e52cf6b8506015462)
[Windows10でGitHubを始める～①Gitインストール](https://qiita.com/emiki/items/c0aa0b4da4b63921b153)
[Windows10でGitHubを始める～①'おまけGitホームディレクトリ変更](https://qiita.com/emiki/items/d3f7c054b70171218f64)
[Windows10でGitHubを始める～②GitHubアカウント作成](https://qiita.com/emiki/items/dadf77e9ae1e2b192323)
[Windows10でGitHubを始める～③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定](https://qiita.com/emiki/items/4103150a5d7a7cfbff24)
[Windows10でGitHubを始める～③'おまけユーザ名・メールアドレス設定について詳細](https://qiita.com/emiki/items/24212696b54fd16e8af8)
[Windows10でGitHubを始める～④リモートリポジトリの作成（GitHub）](https://qiita.com/emiki/items/5080d948af4a2d0febf5)
[Windows10でGitHubを始める～⑤Githubにプッシュする](https://qiita.com/emiki/items/a2871ab626396e95d9ec)
[Windows10でGitHubを始める～⑥-0.Git～GitHub間の認証について](https://qiita.com/emiki/items/eeaf77d51aadef98aea9)
[Windows10でGitHubを始める～⑥-1.Git操作時のGitHub認証HTTPS（Git Credential Manager）](https://qiita.com/emiki/items/3f2ebda7280374fb3bb7)
[Windows10でGitHubを始める～⑥-2.Git操作時のGitHub認証HTTPS（Personal access token）](https://qiita.com/emiki/items/498b05ede19eee3ad916)
[Windows10でGitHubを始める～⑥-3.Git操作時のGitHub認証SSH編](https://qiita.com/emiki/items/1f1fc0bf0c2c4347148d)
[Windows10でGitHubを始める～⑦GitHubへのPullRequest](https://qiita.com/emiki/items/8619441dca761869177f)


https://qiita.com/sta/items/982ab68e8220a81d485c

https://docs.github.com/ja/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/setting-your-commit-email-address

https://dairablog.com/github-email-setting/

https://qiita.com/0084ken/items/f4a8b0fbff135a987fea

https://qiita.com/C_HERO/items/c35e679f0b03a5f06469

https://qiita.com/shionit/items/fb4a1a30538f8d335b35

https://note.nkmk.me/git-config-setting/