git push没有使用正确的git配置值

时间:2014-08-30 00:43:40

标签: git

我有〜/ 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

1 个答案:

答案 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 answerthis question

如果推送URL使用其他传输,则需要基于其他传输进行身份验证。

[修改]您正在使用https身份验证。请参阅Git push requires username and password:最简单的解决方法是切换到ssh身份验证,但如果要继续使用https身份验证,请查看其他答案。 (详细信息取决于您自己的主机操作系统。)