日々常々

ふつうのプログラマがあたりまえにしたいこと。

GitHubで複数メールアドレスを登録している時の設定と使われ方

ただのメモというか、現時点の挙動です。ドキュメントのたぶんこの辺 とかちゃんと読んだら書いてると思うけど。

メールアドレス一個だけ登録してる人(大多数がそうだと思う)には全く関係のない話。

複数メールアドレスを登録する意味

GitHubでコミットをユーザーに紐づけるのにGitのメールアドレス( git configuser.email )が使われる。 コミットログとかをWebUIでみた時にアイコンが表示されたりユーザーページにリンクされたりするあの機能。 登録していないメールアドレスを使うと、知らない人のコミットって感じになってしまう。GitHubを使うならコミットしうるGitのメールアドレスを登録しておくのが良さげ。 複数のメールアドレスでコミットするとかってそんなにない気もするけれど。(私はしてるけど)

Gitのユーザー名 user.name は使ってないのなんでだろうって思ったことあるけど、ユーザー名ってGitHubのユーザー名とGitのユーザー名を一緒にできないこともままありそうだし、突き合わせるのには向いてなさそうね。メールアドレスが妥当ぽい。

<脱線> あれ、もしかして草ってこれで生やしてる? 他の人のメールアドレスを勝手に使ったコミットで埋めた公開リポジトリを作ったら、無理矢理草を生やせたりするんじゃないだろうか……やらんけど。 </脱線>

Public profile の Public email

f:id:irof:20201130025059p:plain

GitHubのプロフィールに表示される。 「GitHub見ました!」ってメールはここに来る感じ。あのメールってGitHubのプロフィールに表示しているメールアドレスは見てるのかもしれないけど、リポジトリの内容ってほとんど見てないよね……。

マージボタンをおしたとき出るもの

f:id:irof:20201130025518p:plain

どのメールアドレスのコミットにするかを聞いてくれる。 この選択肢は Emails に登録しているもの。

順番は辞書順?GitHubにメールアドレスを登録した順でもなさげ。使いたいのが一番上にきてたから意識してなかった……

設定変えて試してみたけど、どうもpublicとかprimaryとかが一番上に来るわけではなさそう。 ドキュメントには

"Primary email address(プライマリメールアドレス)"リストで、WebベースのGit操作と関連づけたいメールアドレスを選択してください。

って書いてるんだけどなぁ。

APIでマージした時に使われるもの

IDEAのGitHubプラグインとかGitHub CLIとかでPRをマージした時。 つまるところPersonal access tokensを使用した場合なんだけど、これで使われるのは Emails でPrimaryにしているもの。こんな表示がされてる。

f:id:irof:20201130031643p:plain

なんでこれ書いてるかっていうと

GitHub CLIでマージしてみたら予期しないメールアドレスになっちゃったので。事故ですね。まぁいいけど。 てっきりPublic emailが使われると思ってたんよねー。WebUIでマージする時に特に意識しなくてもそうなってたから……どうもそれも偶然くさい。 Primary設定しなおした。