これなんの記事?
と思ったあなたのためにまずは説明を。
あなたは自分のpcでとあるプロジェクトの作業をしようとしています、「githubのこのリポジトリcloneして作業お願いします」と言われたので、ささっと作業してpush。
ふう、今回もスマートに作業を終わらせてしまった・・・と悦に浸っていたのですが次の日会社に出社すると「よお!クラウド!」、「あ、クラウドじゃん!」、「クラウドさんチーッス!」と言い始める同僚社員たち、なぜ誰にも言ったことのない自分のハンドルネームが!?と困惑するあなた、全ては昨日の作業が原因だったのです。
なんとgithub上で閲覧できるコミット履歴に自分が個人的に使っているHNが表示されてしまっているではないですか!
何が起こったの?
ローカルリポジトリごとにユーザー情報を設定していなかったため、グローバルに登録されたユーザー情報が使用されてしまっていたのです。
gitのコミットにはコミットしたユーザーの情報が含まれることはご存知でしょうか。
git log
で出力したコミット履歴を見ていくとこんな表記があるはずです。
Author: †kuraudo† <kuraudo@sefirosu.com>
で、この情報どこから出てきたの?ということなんですが、gitインストールして初回のコミット前にみなさんユーザー情報(ユーザー名&メールアドレス)を登録しているはずです。
↓多分こんなの
git config --global user.name †kuraudo†
git config --global user.email kuraudo@sefirosu.com
この設定、 --global
オプションがついているため、各ローカルリポジトリ別にユーザー情報の設定がなければ全てのローカルリポジトリで使用されます。
恐らくクラウドさんことあなたはgitインストール初期にgitの公式を見て言われるがまま自分の好きなユーザーネームと個人で使用しているメールアドレスを入れてしまったのでしょう。
そしてcloneしたてのローカルリポジトリにはuser情報の設定がないため、globalに設定された上記のユーザー情報がそのまま使用されてしまったというわけですね。
ローカルリポジトリ別の設定を確認するには、git管理下のディレクトリに入って git config --local -l
コマンドで確認できます。
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
...(略)
こんな感じで色々設定があると思いますが、 user.name
と user.email
という設定は存在していないはずです。
どうしたらいいの?
今回のような悲劇を繰り返さないためにはどうすればいいかというと前述の通りlocalでユーザー情報の設定を追加してあげれば良いわけですね。
git config --local user.name kasyuu
git config --local user.email xxx@xxxx.com
git log --local
で確認してちゃんと設定されていればOK
user.name=kasyuu
user.email=xxx@xxxx.com
コミットしてpushし直してみましょう。
ちゃんと自分のユーザー名が表示されましたね。
ちなみにアイコンにgithubのアイコンが表示されていることに気づいた方もいるかもしれませんが、githubやgitlab等大半のリモートリポジトリホスティングサービスでは、ユーザー登録時に使用したユーザー名とメールアドレスがコミットユーザー情報と一致した場合、自動的に登録されているユーザー情報と紐づけてくれます。
そのため、基本的には使用しているホスティングサービスで使用しているユーザー名とメールアドレスを登録するのが良いでしょう。
さいごに
そのため、基本的には使用しているホスティングサービスで使用しているユーザー名とメールアドレスを登録するのが良いでしょう。
正直これが一番言いたかった。
(あまり気にしない方もいるかもしれませんが、登録されていないユーザーの名前がgithub等のコミット履歴に並ぶの気持ち悪くありません?アイコンも表示されないので視覚的にもわかりにくいですし・・・)