我正在尝试从命令行将项目推送到远程存储库。
在我的本地目录中,我点击:
$ git push
并得到以下错误:
远程:对用户名 1/repo.git 的权限被拒绝给用户名 2。
致命:无法访问'https://github.com/username1/repo.git/':
请求的 URL 返回错误:403
我的 github 帐户用户名在哪里username1
,托管我想要推送到的存储库,这username2
是我以前在这台机器上使用过的旧帐户。
我在 Macbook Air 上使用 OS X Yosemite (v10.10.5)。我更喜欢使用https代替远程控制。
我该如何更新username1
才能成功推送到我的遥控器?
编辑:要清楚,我不是在谈论简单地编辑对象config user
,例如,
$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "[email protected]"
它们与身份验证无关。我的问题涉及用户认证需要写入我的远程存储库。
答案1
除了使用以下命令从终端更改用户名和电子邮件外git config
:
$ git config --global user.name "Bob"
$ git config --global user.email "[email protected]"
您需要从 Keychain 中删除授权信息。这也是我一直困扰的问题,直到我发现我的 Keychain 中也有证书。
打开钥匙串访问,点击所有项目并搜索git
。您将获得一些如下项目:
删除它们。现在尝试推送 repo,git 会要求您为用户输入密码,然后您就可以开始了。
答案2
对于 CLI 用户,只需使用以下命令:
git config credential.username 'Billy Everytee'
答案3
列出你的 git 配置。
git config --list
更改全局用户名和电子邮件
git config --global user.name "Nanhe Kumar"
git config --global user.email "[email protected]"
更改当前 repo 的用户名和电子邮件
git config user.name "Nanhe Kumar"
git config user.email "[email protected]"
如果您使用 bit bucket,请更改您的 repo url。
nano .git/config
这个文件将会是这样的。
[core]
repositoryformatversion = 0
fileMode = false
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://[email protected]/nanhekumar/myproject.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master`
[user]
name = Nanhe Kumar
email = [email protected]
答案4
其他合理的选择是,如果您只想在一个项目上使用“新用户”,则可以通过仅为您正在工作的项目目录进行配置来实现。例如:
git config --local user.name "Mike"
git config --local user.email "[email protected]"
请注意,我使用的是--local,而不是--global。