はじめに
まずはこちらの画像をご覧くださいな。

これはGitHubを普段から使ってる人ならお馴染みの通称「草」です。
画像真ん中にある緑の四角いやつが草と呼ばれるものです。
mainブランチにpushしたタイミングでその日の枠が緑色に変わり、Contributions(貢献)の数が多いほど明るい緑になっていきます。
逆に真っ黒だと全くpushしていないということになります。
でもPC側の設定をミスっていたことで私は記録できていると勘違いして気付かぬ間に真っ黒となっていたのです。orz...
【本題】 そうです。私は心が折れそうです。
真っ黒...
だがしかし!!ただ心が折れるのは勿体無いのでこれから草生やしに勤しむ方々のためになればと思って小さな(?)失敗談を投稿することにしました。
※あくまで草生やしは副産物のようなものなので、それが目的とならないよう気をつけましょう!
何があったのか
特定のリポジトリページを開いている時に別のリポジトリを開きたくて画面左上に表示される赤枠の部分をクリックでマイページに飛んだ時に、ふとContributionsの草が目に入って「あれ?黒いぞ?もっとPrivateで触ってるはずだぞ?」と思って調べてみたら...

結論。PC内のgit configの設定が間違えていました!!
なぜだ...なぜ今更気づくんだ...
気付かなかった原因として、実際に草は生えている。でもその生えている理由がIssuesとPull Requests(以後PL)を作っていたことで、それらがクローズやらマージが行われていたことで偶然草が生えていたのです...
それはもう...仕組みを把握してないと気付けないよね〜。
てことで起こってしまったことをいつまでも気にしても仕方ないので設定を見直すことにします。
直す前と後でコミットした履歴を確認すると一目瞭然。

下の①が設定を修正前。上の②が設定を修正後です。
修正後は名前の左側にgithubアイコンが表示されています。
それに比べ修正前はOctocatアイコンが表示されています。
(ちなみにOctocatはGitHubのネコの名前)
上記の表示の違いが成功と失敗の差です!
てことで早速設定を見ていきます。
Terminalを開いてコマンドを実行します。
git config --global -l
user.name=[maro-webengineer]
user.email=[hogehoge@example.com]
core.excludesfile=/Users/user/.gitignore_global
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
commit.template=/Users/user/.stCommitMsg
init.defaultbranch=main
今回大事なのは以下の2行だけです。
user.name=[maro-webengineer]
user.email=[hogehoge@example.com]
メールアドレスとかはマスクしてるのでお気になさらず。
でもぱっと見問題なく設定できているように見えます。
一見ね!(昔の私許すまじ)
「ん〜問題ないもんな〜」とか思いながらgit configの設定コマンドをもう一度調べてみました。
git config --global user.email "hogehoge@example"
するとどうでしょう。書いているダブルクォーテーションの中に[]がないぞ?
あれ?これが問題じゃね?しかも私ユーザー名とメールどっちも[]付けてね?
- git config --global user.user "[maro-webengineer]"
- git config --global user.email "[hogehoge@example]"
+ git config --global user.user "maro-webengineer"
+ git config --global user.email "hogehoge@example"
※強調するためにdiffを使い文頭に「-」や「+」を入れていますが「+」のついた行の「git」以降を入力してください。
「言わなくても分かるだろ」とかあるかもしれませんが、昔の私ならやりかねないことなので一応書いておきます。
設定変更コマンドを実行したので、再度設定確認コマンドを実行して設定が反映されているか確認します。
git config --global -l
# 結果
user.name=maro-webengineer
user.email=hogehoge@example.com
# ...省略
無事変更されていますね!
た〜〜だ〜!!ここで安心してはいけません。
もう1つ確認作業を行いましょう。
テストリポジトリか何かを作成、IssuesとPLは作成せずに、ローカルにクローン後、適当にファイルを作ってテキストを書いてコミットしましょう。
そのままmainブランチにpushして先ほどのようにGitHubからコミット履歴を確認しましょう。
pushまで完了したらリモートリポジトリの赤枠部分をクリックして確認できます。

ここでGitHubのアイコンが表示されているかつ、ユーザー名が表示されていれば問題ないでしょう。

自分のメニューから今日の草を確認して表示されていることを確認しました!めでたし。めでたし。

まとめ
今回の設定作業に限らず全てにおいて言えますが、必ず設定を行ったらそれがちゃんと反映されているか、想定通りの動きになっているか確認までしっかり行いましょう。
またgit config --global user.email "hogehoge@example" 実行時に絶対にダブルクォーテーション("")の中に余計な文字を入れないようにしましょう。
[]とか[]トカ[]toka...
おわりに
最後まで読んでいただきありがとうございました。
もし間違っている部分等発見したら編集リクエストやコメントでアドバイスいただけると嬉しいです。
是非良かったと思ってもらえたらいいねも押していただけるとすごく励みになります!
参考資料
