グローバルgitユーザーを構成していますが、1つのgitプロジェクトに別のユーザーを使用したいと考えています。
そのプロジェクトでは、git config --local user.name "localuser"
およびgit config --local user.email "[email protected]"
ローカルプロジェクトのユーザーとメールを設定します。
ただし、githubでリモートにプッシュしようとすると、次のエラーが発生します。
remote: Permission to localuser/repo.git denied to globaluser.
fatal: unable to access 'https://github.com/localuser/repo.git/': The requested URL returned error: 403
診断に役立つ出力は次のとおりです。
git remote -v
:
github https://github.com/localuser/repo.git (fetch)
github https://github.com/localuser/repo.git (Push)
git config --list
:
user.name=globaluser
[email protected]
...
git config --local --list
:
user.name=localuser
[email protected]
...
git config user.name
:
localuser
変更をコミットし、グローバルユーザーから拒否された許可を受け取りました。その後、ローカルユーザーを設定しても何も行われませんでしたgit config user.name
は正しいローカルユーザーを報告しました。
うまくいったのは( このgoogle groupsスレッドの礼儀) :
git commit --amend --reset-author
コミットされた変更には元の作者が添付されていたと思います。
GitHubを使用してOSXで作業している場合は、証明書の問題である可能性があります。 user.nameおよびuser.emailを記憶するGitHub証明書は、ローカル構成設定をオーバーライドします。それを解決する1つの方法は、キーチェーンに移動してGitHub証明書を削除することです。
多くの方法を試して、何時間も費やしましたが、何もうまくいきませんでした。私は最終的にすべてのユーザーをクリアする必要がありました:
git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper
もう一度、PushでGitHubの認証情報を求められ、正しいユーザーIDとパスワードを入力できます:)
ウィンドウを使用している場合は、Control Panel\User Accounts\Credential Manager
に移動して削除することもできます