Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制git以本地配置用户身份推送_Git - Fatal编程技术网

强制git以本地配置用户身份推送

强制git以本地配置用户身份推送,git,Git,我有两个我正在管理的GitHub帐户,比如说accountX和accountY在一开始,我只使用了一个,所以我有一个带有用户名和电子邮件(accountX)的全局配置。现在我想用第二个。我创建了一个回购协议,我使用git config在本地为该回购协议配置用户名和电子邮件 我进行了一次提交,git log在提交下显示了一个正确的用户名和电子邮件(本地配置的,所以是第二个帐户)。然后我添加了一个回购地址(在第二个帐户上创建),我想git push。不幸的是,我得到的信息是,accountX没有此r

我有两个我正在管理的GitHub帐户,比如说
accountX
accountY
在一开始,我只使用了一个,所以我有一个带有用户名和电子邮件(accountX)的全局配置。现在我想用第二个。我创建了一个回购协议,我使用
git config
在本地为该回购协议配置用户名和电子邮件

我进行了一次提交,
git log
在提交下显示了一个正确的用户名和电子邮件(本地配置的,所以是第二个帐户)。然后我添加了一个回购地址(在第二个帐户上创建),我想
git push
。不幸的是,我得到的信息是,
accountX
没有此repo的权限(而且它不应该),但为什么它不使用我在本地配置的权限呢?这是因为为
accountX
存储了SSH密钥吗?所以我想通过ssh推送,它使用一种在历史上为
accountX
生成的密钥


你们看到我的错误了吗

使用
git config user.xxx
命令仅用于设置作者和提交者名称,而不用于身份验证

为了使用正确的帐户,您需要使用第二个私钥记录第二个SSH URL

这是通过
~/.ssh/config
文件完成的

git remote add origin2 second
git push second master
Host second
   Hostname yourGitServer.com
   User git
   IdentityFile c:/path/to/your/second/private/key
在前面提到的
~/.ssh/config
文件中定义了“
second

git remote add origin2 second
git push second master
Host second
   Hostname yourGitServer.com
   User git
   IdentityFile c:/path/to/your/second/private/key

您为第二个GitHub帐户设置了SSH密钥吗?我添加了第二个SSH密钥,因此我有
id\u rsa
id\u rsa\u accountY
。我已经将第二个公钥添加到我的
accountY
GitHub帐户中,但是当我推送它时,仍然会说,
accountX
的repoXYZ权限被拒绝,请确保您的URL使用的是SSH配置文件的主机条目,它引用了正确的标识文件(或者,您的第二个SSH私钥)