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

yrdbyhpb  于 2023-04-10  发布在  Git
关注(0)|答案(2)|浏览(218)

在我的~/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
new9mtju

new9mtju1#

你的主(全局)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设置fetch和push URL,除非有pushurl设置push URL。
如果push URL是ssh://user@host/path/to/repo.git,那么git将使用user作为用户名来调用ssh。ssh传输有自己的,完全独立的身份验证方法:git只是调用ssh,让ssh来处理一切。
有关更多信息,请参见例如VonC's answerthis question
如果推送URL使用其他传输方式,则需要基于该其他传输方式进行身份验证。
[编辑]您使用的是https认证,参见Git push requires username and password:最简单的解决方法是切换到ssh身份验证,但如果您想继续使用https身份验证,请查看其他答案。(详细信息取决于您自己的主机操作系统。)

a6b3iqyw

a6b3iqyw2#

您可以简单地在配置远程“源”URL中添加您的用户名(我建议使用SSH而不是HTTPS):

[remote "origin"]
        url = git@github.com-<your-username>:<company-repo-name/spark.git
        fetch = +refs/heads/*:refs/remotes/origin/*

相关问题