在我的~/gitconfig和我的(repo)/.git/config中:
[user]
name=sboesch
email = stephen.boesch@mycompany.com
他们在工作吗?看起来是的..
$ git config user.email
stephen.boesch@mycompany.com
[cloudera@localhost hwspark]$ git config user.name
sboesch
但是当进行推送时,我的旧凭据(特别是username=javadba)被使用:
[cloudera@localhost hwspark]$ git push
remote: Permission to Mycompany-Spark/spark.git denied to javadba.
我在这里遗漏了什么配置步骤?
**更新 * 更多信息-来自
git config -e
输出:
[remote "origin"]
url = https://github.com/<companyRepoName>/spark.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "ctx"]
remote = origin
merge = refs/heads/ctx
[user]
email = stephen.boesch@mycompany.com
name = sboesch
2条答案
按热度按时间new9mtju1#
你的主(全局)git配置文件为你添加的新提交(到任何仓库)设置了你的用户名和电子邮件,但(至少通常)不影响其他任何东西。
你的每仓库git配置文件包含更具体的指令,比如“用于对指定远程进行获取和推送操作的URL”。通常默认的远程名为
origin
:或者你可以运行
git config -e
在你配置的编辑器中打开每个仓库的配置文件;你应该会看到类似这样的东西(这是我的git源代码副本):url
设置fetch和push URL,除非有pushurl
设置push URL。如果push URL是
ssh://user@host/path/to/repo.git
,那么git将使用user
作为用户名来调用ssh
。ssh传输有自己的,完全独立的身份验证方法:git只是调用ssh,让ssh来处理一切。有关更多信息,请参见例如VonC's answer到this question。
如果推送URL使用其他传输方式,则需要基于该其他传输方式进行身份验证。
[编辑]您使用的是https认证,参见Git push requires username and password:最简单的解决方法是切换到ssh身份验证,但如果您想继续使用https身份验证,请查看其他答案。(详细信息取决于您自己的主机操作系统。)
a6b3iqyw2#
您可以简单地在配置远程“源”URL中添加您的用户名(我建议使用SSH而不是HTTPS):