BETA

Gitのコミットメールアドレスに他人のメールアドレスを使用してはいけない

投稿日:2020-07-12
最終更新:2020-07-15

Gitではコミットする際に任意のメールアドレスを指定することができます。任意に設定する値なので存在しないアドレスや、他人のメールアドレスでも登録できますが、Githubでソースコードを公開している場合は注意が必要です。

Githubではコミット時のメールアドレスをもとにコミット履歴に表示するユーザーアカウントを特定しているため、もしもコミット時に指定したメールアドレスが他人のGithubアカウントのメールアドレスとして登録されていた場合、そのコミットは他人のGithubアカウントに紐づけられてしまいます。

例えば、あるOSSプロジェクトで誰かが [email protected] という適当なメールアドレスを使用してコミットを実施したとします。

commit 603a85fcdabb66c337c1740d4db85208bf50e05f (HEAD -> master, origin/master, origin/HEAD)  
Author: castellaman <[email protected]>  
Date:   Sun Jul 12 03:57:24 2020 +0900  

    enable png opt  

前述したようにGithubはコミットログのメールアドレスをもとにコミットしたユーザーを検索します。該当のメールアドレスを持つユーザーがいない場合、このコミットはGithub上では以下のように表示されます。

しかし、もしもこのメールアドレスが別のGithubユーザーが使用するものだった場合、そのコミットはその別のGithubアカウントに紐づけられた状態で表示されます。

Githubのユーザー参照はコミットログを表示した時点で都度実施されます。そのため、コミット時点で該当するメールアドレスを持つユーザーが存在しなかったとしても、後から新規にユーザーが作成されたり、メールアドレスの設定を変更したユーザーが存在したりすればこの問題が発生し得ます。

これはあくまでGithubの表示上の問題でしかなく、実際のコミット内容が改変されたわけではありません。Github上で何らかの対策があれば良いのですが、コミットログからユーザーを特定する方法は限定されるため根本的な対応は難しそうです。

このような問題を回避したいのであれば、安易に「ユーザー名」+「.com」といった実在可能性のあるメールアドレスを使用することは避けた方が無難です。もしもGithub上で本来のメールアドレスを隠匿したままコミットしたい場合はnoreplyメールアドレスという機能を使用することができます。

Github上での表示以外には影響はないのですが、どうしても表示内容を修正したい場合はコミットメッセージの変更を参照してコミットログを編集します。

追記: Githubのこの挙動はバグなどによる意図せぬものではなく、公式ドキュメントにも記載されている仕様です。

コミットのトラブルシューティング: コミットが間違ったユーザにリンクされているのはなぜですか?

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

⭐オススメ技術ブログ⭐

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう