如果在Windows和Windows下的用户Git以及manager
用于管理凭据(又名Git-Credential-Manager-for-Windows
Link),则问题在于,当https
使用OAuth
令牌推送到GitHub时,没有简单的方法可以在用户之间切换。
原因是令牌存储为:
- 网址:
git:https://github.com
- 用户名:
Personal Access Token
- 密码:
OAuth_Token
URL的变体Internet Address
不起作用,例如:
git:https://username@github.com
git:https://github.com/username
- ...
解决方案:名称空间。可在以下配置的详细信息中找到Git-Credential-Manager-for-Windows
:
引用它:
命名空间
设置存储凭据的名称空间。
默认情况下,GCM将'git'命名空间用于所有存储的凭据,设置此配置值可控制全局或每个主机使用的命名空间。
git config --global credential.namespace name
现在,将您的凭据存储在Windows凭据管理器中为:
- 网址:
git.username:https://github.com
- 用户名:
Personal Access Token
- 密码:
OAuth_Token
请注意,我们已更改:git
-> git.username
(您在哪里更改username
为实际用户名,或出于此目的,为可能需要的唯一标识符)
现在,在要使用特定条目的存储库中,执行:
git config credential.namespace git.username
(再次...替换 username
为您想要的值)
您.git/config
现在将包含:
[credential]
namespace = git.username
等等!正确的凭据将从Windows凭据存储中提取。
当然,这不会更改正在推送的用户/电子邮件。对于您必须配置通常user.name
和user.email
git config --global user.name her_username
)在推送之前