Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@kasyuu

gitのconfigを適切に設定して悲劇を防ごう ~user編~

More than 1 year has passed since last update.

これなんの記事?

と思ったあなたのためにまずは説明を。

あなたは自分のpcでとあるプロジェクトの作業をしようとしています、「githubのこのリポジトリcloneして作業お願いします」と言われたので、ささっと作業してpush。

ふう、今回もスマートに作業を終わらせてしまった・・・と悦に浸っていたのですが次の日会社に出社すると「よお!クラウド!」、「あ、クラウドじゃん!」、「クラウドさんチーッス!」と言い始める同僚社員たち、なぜ誰にも言ったことのない自分のハンドルネームが!?と困惑するあなた、全ては昨日の作業が原因だったのです。

スクリーンショット 2019-10-09 3.16.32.png

なんと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.nameuser.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し直してみましょう。

スクリーンショット 2019-10-09 3.58.53.png

ちゃんと自分のユーザー名が表示されましたね。

ちなみにアイコンにgithubのアイコンが表示されていることに気づいた方もいるかもしれませんが、githubやgitlab等大半のリモートリポジトリホスティングサービスでは、ユーザー登録時に使用したユーザー名とメールアドレスがコミットユーザー情報と一致した場合、自動的に登録されているユーザー情報と紐づけてくれます。

そのため、基本的には使用しているホスティングサービスで使用しているユーザー名とメールアドレスを登録するのが良いでしょう。

さいごに

そのため、基本的には使用しているホスティングサービスで使用しているユーザー名とメールアドレスを登録するのが良いでしょう。

正直これが一番言いたかった。
(あまり気にしない方もいるかもしれませんが、登録されていないユーザーの名前がgithub等のコミット履歴に並ぶの気持ち悪くありません?アイコンも表示されないので視覚的にもわかりにくいですし・・・)

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kasyuu
フリーランスになったのでもしかすると来月にはニートかもしれない。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?