web-dev-qa-db-ja.com

ローカルgit構成がプロジェクトのグローバルユーザーを上書きしない

グローバル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
41
amacrobert

変更をコミットし、グローバルユーザーから拒否された許可を受け取りました。その後、ローカルユーザーを設定しても何も行われませんでしたgit config user.nameは正しいローカルユーザーを報告しました。

うまくいったのは( このgoogle groupsスレッドの礼儀)

git commit --amend --reset-author

コミットされた変更には元の作者が添付されていたと思います。

21
thekevinscott

GitHubを使用してOSXで作業している場合は、証明書の問題である可能性があります。 user.nameおよびuser.emailを記憶するGitHub証明書は、ローカル構成設定をオーバーライドします。それを解決する1つの方法は、キーチェーンに移動してGitHub証明書を削除することです。

11
CasperTN

多くの方法を試して、何時間も費やしましたが、何もうまくいきませんでした。私は最終的にすべてのユーザーをクリアする必要がありました:

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に移動して削除することもできます

7
JerryGoyal