我有〜/ 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
但是在进行推送时,我会使用旧的凭证(特别是用户名= 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
答案 0 :(得分:2)
您的主(全局)git配置文件为您添加的新提交(到任何存储库)设置您的用户名和电子邮件,但(至少通常)不会影响其他任何内容。
您的每个存储库git配置文件包含更具体的指令,例如“用于对指定远程执行提取和推送操作的URL”。通常的默认远程名为origin
:
$ git config --get remote.origin.url
git://git.kernel.org/pub/scm/git/git.git
或者您可以运行git config -e
以在配置的编辑器中打开每个存储库配置文件;你应该看到这样的东西(这是我的git源副本):
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
url
设置了抓取和推送网址,除非有pushurl
设置推送网址。
如果推送网址是例如ssh://user@host/path/to/repo.git
,则git将使用ssh
作为用户名来调用user
。 ssh传输有自己的,完全独立的身份验证方法:git只调用ssh并让ssh处理所有事情。
有关详情,请参阅,例如VonC's answer至this question。
如果推送URL使用其他传输,则需要基于其他传输进行身份验证。
[修改]您正在使用https身份验证。请参阅Git push requires username and password:最简单的解决方法是切换到ssh身份验证,但如果要继续使用https身份验证,请查看其他答案。 (详细信息取决于您自己的主机操作系统。)