Edited at

GitHub のアカウントを個人用と会社用で同じものを使うときはユーザ名とメールアドレスの設定に注意

More than 1 year has passed since last update.


はじめに

GitHub のアカウントを個人用と会社用で同じものを使っている場合、コミット履歴に残るユーザ名やメールアドレスに注意しましょう。不必要に社内用メールアドレスを公開してしまうリスクがあります。

この記事では、このような場合にユーザ名やメールアドレスをどのような設定にしておくべきかを説明します。


背景

会社で GitHub を使っていて、プライベートでも何かリポジトリを作って遊んでみようと同じアカウントで使っていたとき、うっかり Public なリポジトリのコミット履歴に社内で使用しているメールアドレスが残ってしまい、履歴を書き換える羽目になってしまいました。

コミット履歴は各リポジトリのディレクトリで git log --pretty=fuller で確認できます。


対策


  • 個人用と会社用とで GitHub のアカウントを使い分ける。

  • Git の Author をリポジトリごとに設定する。

前者はいちいちアカウントを切り替える手間があったり Contribution が分散してしまったりして個人的にイマイチだなと思ったので、今回は後者の方法を紹介します。


リポジトリごとに Author を設定する

まず、Git でグローバルな設定にある Author を使わないようにしましょう。

$ git config --global --unset user.name

$ git config --global --unset user.email

続いて、各リポジトリで Author を設定するようにします。なお、--local は省略可能です(Git version 2.7.4 で確認)。

$ git config --local user.name "Your name"

$ git config --local user.email "your-name@example.com"

なお、プライペートでは自分のメールアドレスを公開したくないという場合があると思います。その場合は、次で説明する GitHub の設定で、プライペート用のメールアドレスをここで設定しましょう。


GitHub の設定でメールアドレスの設定を変更する

コマンドラインから Git を使う場合はこれだけで問題ありませんが、GitHub 上で直接ファイルを編集してコミットしたりするような場合は、コミット履歴には GitHub の設定が利用されます。

そこで、GitHub のアカウントの設定も見ておきましょう。

まず、Setting > Profile ページで Name を設定します。ここで入力した内容が、コミットの Author になります。空欄にすると Username(@ から始まるアカウント名)になります。

続いて、Settings > Emails で Primary email address を選択します。GitHub 上でのコミットの Author のメールアドレスは、ここで選択したメールアドレスになります。

なお、ここでメールアドレスを公開したくないという場合は、少し下にある設定項目 Keep my email address private にチェックを入れます。チェックを入れると、GitHub 上でのコミットの Author のメールアドレスは、この設定項目の説明文に表示されている <ID>+<your-username>@users.noreply.github.com のようなものになります。

前述の Git の設定でもこのメールアドレスは利用可能です。


私の場合


  • 個人用(プライベート)では…


    • Author は各リポジトリごとに設定

    • ユーザ名は GitHub の Name、メールアドレスは @users.noreply.github.com のものを設定



  • 会社用では…


    • Author は --global で設定(社用端末)

    • ユーザ名は GitHub の Username、メールアドレスは社内用のものを設定




参考