gitでコミット等に反映されるユーザ情報は3段階で管理されているようです。
system, global, local の3段階。
より細かい粒度の方が優先的に利用されます。
通常はsystem単位(PC単位)でgitアカウントを変えるケースより、User単位で返るケースの方が圧倒的に多く、global設定に値を持たせてると思います。
現在のユーザ情報を見るには以下をで表示できます。
git config user.name
git config user.email
コンフィグファイルの中身を丸ごと見たい場合は
git config --list
このコンフィグファイルは以下の場所に配置されています。
C:\Users\[username]\.gitconfig
省略しますが、ファイルの中身はこんな感じです。
[user]
name = uname
email = email@email.com
アカウントを分けたい
さて、ここで問題になるのは、主に会社のアカウントでGITを利用するけど、
自分のアカウントで自分の個人リポジトリにもコミットしたいし、
他社と協力している場合は別のGITアカウントでコミットしたい、というケースです。
実はプロジェクト単位でアカウント情報を保持することができ、
project\.git\config
↑ファイルに前述の.gitconfigと類似の情報が書かれています。
これを手で書き換える or 下のコマンドで書き換えると、以後はそのプロジェクトでは.gitのコンフィグが参照されます。
git config --local user.name "username"
git config --local user.email "email"
もし名前を間違えてコミットしちゃったら?
個人プロジェクトだけでしか使えない手法ですが、
以下のコマンドで全てのAuthorとCommiterの名前を書き換えます。
git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='my_name'
GIT_AUTHOR_EMAIL='12345689+username@users.noreply.github.com'
GIT_COMMITTER_NAME='my_name'
GIT_COMMITTER_EMAIL='12345689+username@users.noreply.github.com'
" HEAD
そして禁断のforce pushしてブランチを丸ごと上書きして終了です。
git push --force
コメント