ID , 'noindex' , true)){ echo ''; } ?>

git hubのコミッターを変更する方法

git hubのコミッターを変更する方法

 

 

先日、サブの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のコンフィグの種類
  1. /etc/gitconfig(System)
  2. ~/.gitconfig(Global)
  3. プロジェクトディレクトリ/.git/config(Local)

下に行くほど優先度が高い(同じ設定があった場合、下のものほど優先される)

gitのコンフィグファイルや種類に関しては、以下記事にて詳細に紹介してあるので参考にしてもらいたい。

 

コンフィグ「local」の設定値の変更方法

コンフィグ「local」の設定値を変更するには、以下のようにgit configコマンドを実行する。

#Gitの設定項目を変更

git config <name> <value>
※注意点として、適用させたいgitプロジェクト以下のディレクトリで実行すること。localはgitプロジェクト毎の値なので、gitプロジェクトより上の階層で実行するとエラーとなる

<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

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です