はじめに
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、メールアドレスは社内用のものを設定
- Author は