先日GitHubへコミットした際、会社のGitLab用のアカウントでコミットしてしまい
GitHub上で本名を晒してしまったので同じ過ちを起こしてもすぐ修正できるようにメモ。
原因
globalの.gitconfigに登録されていたuserでcommitしてしまったのが原因でした。
globalには会社のGitLab用のアカウントが登録されていたのですが、
特に何の設定もせずにGitHubへcommitしちゃったので前述した本名でのコミットに繋がりました…
ちなみにglobalで設定してある内容は以下のコマンドか~/.gitconfg
を開く事で確認が可能です
git config --global -l
...
user.name=グローバルの.gitconfigに登録してあるアカウント名
user.email=グローバルの.gitconfigに登録してあるメールアドレス
対応方法
リポジトリ毎に.git/configを設定する
変更したい対象のリポジトリのディレクトリに移動して以下のコマンドを叩くと設定可能です
git config --local user.name "変更したい対象のリポジトリで使いたいアカウント名"
git config --local user.email "変更したい対象のリポジトリで使いたいメールアドレス"
設定が変更されたかどうかは以下のコマンドで確認可能です
git config -l
...
[user]
user.name=先程設定変更したアカウント名
user.email=先程設定変更したメールアドレス
間違えたユーザー名を全部書き換える
これでコミット時にglobalのgitconfigに登録されているアカウント名が使われることはなくなりましたが、
すでに行ってしまったコミットのアカウントは自動で変更されません。
過去全てのコミットで名前とメールアドレスを変更したい場合、以下のコマンドで対応可能です
git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='変更後のアカウント名'; \
GIT_AUTHOR_EMAIL='変更後のメールアドレス'; \
GIT_COMMITTER_NAME='変更後のアカウント名'; \
GIT_COMMITTER_EMAIL='変更後のメールアドレス';" \
HEAD