先日、サブのgit hubアカウントのリポジトリにコミットした後、git hubアカウントを確認してみると、いつも使っているメインのgit hubアカウントユーザでコミットされてしまっているという状況になってしまった。
そのため、なんとかサブのgit hub アカウントユーザでコミットできないものかと、方法を調べたので、その時のことをメモ。
サブgit hubアカウントではなく、メインgit hubアカウントのユーザでコミットされていた原因
サブgit hubアカウントではなくメインgit hubアカウントのユーザでコミットされていた原因は、結論から言うと、コンフィグ「global」のユーザがコミッターとして適用されていたためであった。
適用ユーザの「user.email」が、githubのアカウントと紐づく場合、githubのコミットのところにリンクとして表示されるのだが、ここで言う適用ユーザが「global」のユーザであったという話だ。
解決方法:コンフィグ「local」のユーザを適用する
解決方法としては、コンフィグ「local」のユーザを適用してやれば良い。
コンフィグ「local」のユーザは、コンフィグ「global」のユーザより優先度が高いので、localが設定されている場合、優先的にgitのコミッターとして採用される。
gitのコンフィグファイルや種類に関しては、以下記事にて詳細に紹介してあるので参考にしてもらいたい。
コンフィグ「local」の設定値の変更方法
コンフィグ「local」の設定値を変更するには、以下のようにgit configコマンドを実行する。
#Gitの設定項目を変更
git config <name> <value>
<name>には変更したい設定項目(user.emailなど)を指定し、
<value>には新しく設定したい設定値を指定する。
今回の件(コミッターを変更する)に関しては、例えば以下のようにコンフィグ「local」の値を変更することで対応できる。
# コンフィグ「local」の設定値を変更する例
git config --local user.name "hara-chan" #コミッターの名前
git config --local user.email "hara-chan@gmail.com" #コミッターのメールアドレス(これで適用ユーザを判別)
Gitは、authorとcommitを分けている
gitでは、実はauthorとcommitを分けている
(https://pg-learning.com/git/change-author-and-committer/)
authorとcommitを表示するには、以下のコマンドを実行する
git log --pretty=full
ただし、普段はauthorとcommitは同一であることがほとんどなので、通常のgit log では見えない設定だし、そこまで意識することでもないかな。
https://note.nkmk.me/git-config-setting/
関連記事
関連記事として、いつも使っているGithubアカウントとは別のGithubアカウントでリポジトリを作成し、そのリポジトリにpushしようとした際、以下のようなエラーが発生した場合の対処方法を記事にまとめてあるので、合わせて参考にして欲しい。
# git push origin master
remote: Permission to 別のアカウント/リポジトリ.git denied to いつものアカウント.
fatal: unable to access 'https://github.com/別のアカウント/リポジトリ.git/': The requested URL returned error: 403
下に行くほど優先度が高い(同じ設定があった場合、下のものほど優先される)