【发布时间】:2017-04-30 01:35:02
【问题描述】:
我在 Github 上有两个帐户(假设它们是 a1 和 a2)。使用我的a2 个人资料,我为它创建了一个组织和一个新的存储库(来自 Github 的网站)。我的电脑有以下~/.gitconfig 文件:
[core]
editor = pico
[user]
name = a1
email = mail_a1@example.com
(因为大部分时间我使用我的a1 帐户)。
现在我想处理我用a2 创建的组织的存储库,所以我做了以下事情:
cd project_folder
touch README.md
git init
git config --local user.name a2
git config --local user.email "mail_a2@example.com"
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/myorganisation/myrepo.git
然后,为了确保我的提交是由a2 完成的,我做了git log,获得:
commit e8dd182a12023a490cb2f099ea8b3a94afe6b81b
Author: a2 <mail_a2@example.com>
Date: Wed Dec 14 17:12:10 2016 +0100
first commit
太好了。但是当我尝试git push -u origin master 时,我收到一条 403 消息,说我正在尝试以a1 推送:
remote: Permission to hivex-unipd/swedesigner.git denied to gigiobello.
fatal: unable to access 'https://github.com/myorganisation/myrepo.git/': The requested URL returned error: 403
我是不是忘记了什么? 为什么 Github 认为我是 a1,即使我已经使用 a2 帐户配置了我的本地存储库?
【问题讨论】:
-
当您尝试执行
push时,它是否要求您进行身份验证?有没有可能你用过credential helper to cache your github password? -
它没有要求我进行身份验证,但是当我输入
git config --list时,我可以看到credential.helper设置为osxkeychain(我在 Mac 上)。 -
您是否尝试过进入钥匙串并删除所有 github 凭据(考虑到您知道您的凭据并且可以在没有钥匙串的情况下登录),重新启动机器,并检查您下次尝试时是否会被要求提供凭据做
push? -
您的链接很有帮助,谢谢!我必须更新 Keychain Access 中的密钥(实际上是我删除了它),所以现在 Git 要求我输入用户名和密码,
push按预期工作。 -
酷,我会把它全部作为答案发布,所以你可以接受并关闭这个问题
标签: git github git-push git-config