2014-08-30 61 views
1

我在我的〜/ gitconfig和我(回購)/混帳/配置:混帳推不使用正確的git的配置值

[user] 
    name=sboesch 
    email = [email protected] 

難道他們的工作?似乎這樣..

$ git config user.email 
[email protected] 
[[email protected] hwspark]$ git config user.name 
sboesch 

但是這樣一推,當我老的憑據(用戶名專門= javadba)被用來代替:

[[email protected] 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 = [email protected] 
     name = sboesch 

回答

2

你的主要(全球)混帳配置文件設置你的用戶名和新提交您添加電子郵件(任何存儲庫),但(至少通常)不會影響其他任何東西。

您的每個存儲庫的git配置文件包含更具體的說明,例如「用於對已命名的遠程進行讀取和推送操作的URL(s)」。通常默認的遠程名爲origin

$ git config --get remote.origin.url 
git://git.kernel.org/pub/scm/git/git.git 

,或者你可以只運行git config -e在配置編輯器中打開了每個倉庫的配置文件;你應該看到這樣的事情(這是我混帳源的複印件):

[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這臺推URL。

如果推送URL是,例如,ssh://[email protected]/path/to/repo.git,那麼git將調用ssh使用user作爲用戶名。 ssh傳輸具有自己的,完全獨立的認證方法:git只是調用ssh並讓ssh處理所有事情。

欲瞭解更多信息,請參閱,例如,VonC's answerthis question

如果推送網址使用其他傳輸方式,則需要基於其他傳輸方式進行身份驗證。

[編輯]您正在使用https驗證。請參閱Git push requires username and password:最簡單的修復方法是切換到ssh身份驗證,但如果您想繼續使用https身份驗證,請查看其他答案。 (詳細信息取決於您自己的主機操作系統。)

+0

嗨,我已經更新了操作系統,以反映設置是/都在全局〜/ .gitconfig和回購本地.git/config – javadba 2014-08-30 01:12:24

+1

您可以*重寫*本地配置中的全局設置,但是'user.name'和'user.email'在這裏不是有趣的項目,它是'pushurl'如果設置,或者'url'沒有設置,那麼是下一個關鍵項目。 – torek 2014-08-30 01:23:17

+0

具體問題在哪裏,我對此還不清楚。在任何情況下,我已經更新了OP以顯示git config -e – javadba 2014-08-30 04:14:21