Web制作の勉強を始めた頃、なんとなく「Git」と「GitHub」をセットで覚えていた。git init
して、git commit
して、git push
して…。
「コミットしてプッシュすれば、GitHubにあがるんだよね」ぐらいの理解で、特に深く考えたことはあなかった。でも、しばらく使っていると、ちょっとした違和感が。
「え?なんでメールアドレスをあちこちに入力しないといけないの?」
まあ、最初はあまり気にせず使っていたのだが、英文メールのこともあり整理しないと、と思った。
これがわからなくてモヤモヤしていたが、ようやく整理できたので自分なりにまとめてみた。
ターミナルで使うのが「Git」、Webで見るのが「GitHub」
まず大前提として、「Git」と「GitHub」は別物。
よく一緒に語られますが、役割がぜんぜん違うようだ。
- Git:バージョン管理システム。ローカル(自分のパソコン上)で、ファイルの変更履歴を記録・管理するツール。
- GitHub:Gitで管理した履歴を、クラウド(インターネット上)に保存・共有するサービス。
例えるなら:
- Git → 日記帳に手書きで書いている(ローカルに記録)
- GitHub → その日記をスキャンしてGoogleドライブにアップロード(クラウドで保管・共有)
なので、「Gitを使って記録し、GitHubにアップロードする」という流れになる。
ターミナル(黒い画面)で操作するのがGit。
ブラウザで見るのがGitHub。
Gitで使うメールアドレス:これは署名
git config --global user.email "you@example.com"
これ、最初に出てきて「なにこれ?」って思った方も多いはず。
これは、「誰がそのコミットを行ったか」という署名のようなもので、
Gitでは、ファイルの変更履歴に「名前」と「メールアドレス」が記録される。
つまり、**Gitにとってのメールアドレスは「履歴に残すための署名」**で、git log
を見ると、ちゃんと自分の名前とメアドが表示されているのがわかる。
GitHubで使うメールアドレス:これはアカウント認証
一方、GitHubでのメールアドレスは、アカウントのログイン情報で、
要するに「この人がGitHubのユーザーだよ」という認証や通知先に使われる。
なので、ここでのメルアドはGitで入れたメルアドとは直接関係はないようだ。でも関連性はあって、
Gitで使っているメールアドレスが、GitHub側に「登録されていない」場合、
GitHubの画面上で**「作者不明(Unverified)」**のように表示される。
自分のコミットなのに「この人誰?」扱いされるのはちょっと寂しい。
そのため、Gitで設定したメールアドレスをGitHubにも登録しておくのがいいようだ。
匿名でやりたい場合:no-replyメールもある
ちなみに「本名+メールを公開したくない」という人向けに、
GitHubでは匿名で署名できる仕組みも用意されていて、
それが your-id@users.noreply.github.com
という形式のメールアドレス。
GitHubの「Settings → Emails」で
✅「Keep my email address private」
✅「Block command line pushes that expose my email」
をONにすると、コミットにこのno-replyアドレスが使われ、個人情報が保護される。
まとめ:
GitとGitHubは切っても切れない関係ですが、それぞれ役割がはっきり違っていて
- Gitはローカルの記録ツール
- GitHubはクラウドで共有するためのサービス
- Gitで使うメールは「署名」
- GitHubで使うメールは「ログイン情報」
メールアドレスが複数出てくるのは、この「使い道の違い」があるから。
今まではなんとなく使っていたGitとGitHubですが、
まあ、自分なりの解釈なので多少違うかもしれないが、大筋では大丈夫であろうと思う。