メールの公開・非公開の設定をせずにpushの練習をすると自分のメールアドレスがログとして公開されてしまいます。これはログなので後では消せません。Gitの勉強を始めるにあたり最初にメールアドレスの設定をしておきましょう。
1.データのやり取りをすると履歴が残る
Gitは変更の履歴を管理するアプリケーションであり、様々なところでユーザー名やメールアドレスの履歴、ログが残ります。
例えば、「他の人のGitHub」「自分のGitHub」「自分のPCのSourcetree」の間でデータのやり取りをした場合には、データをやり取りするたびに履歴が残ります。
そして、この履歴内容の表示を制限するには、「自分のGitHub」によるデータのやり取りについてはGitHubで設定する必要がありますし、「自分のPCのSourcetree」によるデータのやり取りについてはSourcetreeで設定する必要があるのです。
つまり、GitHubだけ設定して安心してはいけません。
2.ログでメールを確認する
では、実際にログによりメールアドレスを確認してみましょう。「自分のGitHub」からクローンしたリポジトリを「自分のPCのSourcetree」で変更し、「自分のGitHub」にpushしたとします。
この場合、「自分のGitHub」のリポジトリには「自分のPCのSourcetree」からpushした履歴が残ります。そして、この履歴にはメールアドレスの情報が含まれています。
つまり、第3者が「あなたのGitHub」のリポジトリをSourcetreeを使ってクローンし、 Sourcetreeのターミナル上で「git log」を実行すれば、あなたのメールアドレスをログの中で確認することができます。
ログなので、途中でメールアドレスを公開しない設定に変えたとしても消えることはありません。
どうでしょうか?やはり、pushの練習をする前にメールアドレスの公開・非公開の設定をしておいた方がよいですね。
3.GitHubの設定
まず、GitHubの設定を行いましょう。GitHubの設定を行うとGitHubを使ってweb上でデータのやり取りをしたときの履歴の表示をコントロールできます。
(1) noreplyメールアドレスの確認
noreplyメールアドレスとは、メールアドレスを公開したくないときに代わりに設定するメールアドレスです。noreplyメールアドレスはSourcetreeの設定などで使います。
- 右上のユーザーアイコンをクリック
- Settingsをクリック
- サイドバーのEmailsをクリック
- Primary email addressの文中にある「[8桁の数字]+[ユーザー名]@users.noreply.github.com」がnoreplyメールアドレスです。
なお、2017/06/18より前に作成したアカウントでは[8桁の数字]がありません。
(2) web上のGitHubで編集した場合にメールアドレスを隠す
以下の設定を行うことで、web上のGitHubで編集した場合にメールアドレスを隠すことができます。
- 右上のユーザーアイコンをクリック
- Settingsをクリック
- サイドバーのEmailsをクリック
- Keep my email addresses privateにチェック
これは、ディフォルトで表示しない設定になっていると思います。つまり、気にしなくてもGitHubの操作でメールアドレスが公開されることはありません。
4.Sourcetreeの設定
GitクライアントソフトとしてSourcetreeを用いた場合の説明をします。別のアプリを使ったり、コマンドで操作する場合には、それぞれの方法で設定を行う必要があります。
(1) 特定のリポジトリのみ設定する場合
特定のリポジトリだけメールアドレスの公開・非公開を設定する場合には以下の手順で設定します。
- 設定するローカルリポジトリをSourcetreeで開く
- 設定をクリック(右上の歯車)
- 詳細タブを選択
- ユーザー情報の「グローバルユーザー設定を使う」のチェックを外す
- ユーザー情報のフルネーム:任意の名称に変更
- ユーザー情報のメールアドレス:公開したくない場合はGitHubで確認した「noreplyメールアドレス」を入力
しかし、この方法ではリポジトリを新規作成するたびに設定しなければなりません。新規作成したときのデフォルト設定を変更するにはグローバルユーザー設定を変更する必要があります。
(2) グローバルユーザー設定の変更
グローバルユーザー設定によりユーザー設定を指定すると、新しく作成するリポジトリだけではなく、先ほどの設定で「グローバルユーザー設定を使う」にチェックされたリポジトリ全てに、この設定が適用されます。つまり、過去に作成したリポジトリにも影響を与えます。
- 最上部の「ツール」メニューを選択
- オプションを選択
- 「全般」タブをクリック
- デフォルトユーザー情報のフルネーム:任意の名称に変更
- デフォルトユーザー情報のメールアドレス:公開したくない場合はGitHubで確認した「noreplyメールアドレス」を入力
以上で、Sourcetreeを使用する場合のメールアドレスの公開・非公開の設定は終了です。
5.過去のログ上のメールアドレスを消したい
他の人が管理するリポジトリに残ったログは残念ながらあきらめましょう。また、自分が管理するGitHub上のリポジトリに残ったログに関しても、簡単に消すことはできません。
自分が管理するGitHubのリポジトリの場合は、リポジトリ自体を削除し作り直すことになります。削除前に最新のコードを保存し、新しいリポジトリに反映させましょう。
参考までにGitHub上のリポジトリを削除する手順を以下に紹介します。操作はGitHubで行います。
- Repositoriesより削除するリポジトリを開く
- Settingsをクリック(歯車マーク)
- 「Danger Zone」の「Delete this repository」右側の「Delete this repository」のボタンをクリック
- 「Are you ABSOLUTELY sure?」のwindowが拓くので、リポジトリの名前を入力する。この時、リポジトリ名だけではなく[ID名]/[リポジトリ名]とする。
- 正しく入力すると下部の「I understand the consequenses, delete this repository」がクリックできるようになるのでクリックする