2012-06-16 27 views
53

我已經按照GitHub指示設置了我的帳戶,並且能夠克隆,但我無法遠程推送。如何重置'git credential-osxkeychain'中存儲的憑證?

當我做一個「混帳推」我得到403錯誤。它具有正確的網址。我嘗試了一個「git credential-osxkeychain get」來查看它給出的內容,並且打印出錯誤的憑據。

我相信發生了什麼事是第一次它要求憑據,我還以爲是另一個應用程序要求,並把那些錯誤的英寸

我只需要那麼它使用正確的重置我的GitHub帳戶的鑰匙串項目。

我已經試過:

git credential-osxkeychain erase 
git credential-osxkeychain set 

該計劃從來沒有給任何提示。如果我沒有做正確的事情,Set會說「不好的輸入」。我試過放入「password=password」等等,但是當我做「得到」時,我仍然得到舊的。

我無法弄清楚這些被存儲在何處,因爲它們不是在.gitconfigure。此外,最近沒有可能的鑰匙串項目。 (我在我的鑰匙串幾個GitHub的賬戶,並沒有使用其中任何一個。)

+0

相關,憑證幫手無關:http://stackoverflow.com/questions/21745213/changed-github-password-no-longer-able-to-push -back-to-the-remote –

+0

在Windows上可能也是這樣:http://stackoverflow.com/questions/15381198/remove-credentials-from-git –

+0

[你可以設置這個助手工具來將你的登錄名與特定的回購站相關聯而不是整個域名,以防您想使用多個帳戶。更多關於這裏](http://stackoverflow.com/a/31351376/1922144) – davidcondrey

回答

19

的解決方案竟然是這樣的:

git credential-osxkeychain是用我的鑰匙串第一 GitHub的帳戶條目的命令。這個人不是那個可以訪問相關項目的人。

我通過觸摸Keychain Access中的帳戶來解決問題,使其日期發生變化(我想我剛剛更改了評論),現在它成爲最近的GitHub帳戶,它成爲第一個返回到credential-osxkeychain的帳戶,因此一切正常。

的多個帳戶GitHub的支持,更好的形式是好的,但它可能是大多數人只能有一個主帳戶,但沒有碰到這個問題。

+2

我不知道這是如何工作在同一主機上的多個用戶,但你可以簽出ssh和使用'〜/ .ssh/config'文件,而不是使用OSX鑰匙串。這用於您可能爲不同主機設置多個ssh密鑰(以及考慮帳戶)的情況。 http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/ – jusopi

+0

你該死的英雄! – Cristian

54

我不知道如何通過命令行刪除,但它很容易通過鑰匙串訪問應用程序來做到這一點。只需進入應用程序 - > Utilities - > Keychain Access,然後輸入「github.com」。您可以刪除無效項目,也可以使用應用更新密碼。

+2

如果有人讀這個數字瞭如何從命令行做,將很高興知道。 – funroll

+1

@funroll命令行工具是'security'。該手冊頁指出它有一個'delete-internet-password'命令。 – benzado

+0

感謝您的更新,我相信這對別人有用。 – funroll

9

git-credential-osxkeychain將密碼存儲在Apple Keychain中,如上所述。

默認情況下,gitcredentials只考慮域名。如果您希望Git考慮完整路徑(例如,如果您有多個GitHub帳戶),請將useHttpPath變量設置爲true,如http://git-scm.com/docs/gitcredentials.html中所述。請注意,更改此設置將爲每個網址重新提示您的憑據。

40

從終端:

$ git credential-osxkeychain erase 
host=github.com 
protocol=https 
<press return> 
+1

與git credential-wincred擦除一起工作的好處 –

+2

由於某些原因,我無法在Keychain應用程序中找到任何Git/GitHub證書,但是這有效。謝謝! – Donald

3

在Mac上,使用命令git credential-osxkeychain erase

或從鑰匙扣手動刪除應用公用事業鑰匙串訪問。然後刪除github.com鑰匙串。然後使用推;它會要求鑰匙串訪問;然後否認。

它會詢問新的用戶名和密碼,添加它然後爲此推送一個文件。

git push我發現此錯誤。然後,我用的是上區分 問題:

remote: Permission to user1/file.git denied to user2(previously exist user ). fatal: unable to access ' https://github.com/xxxxxxxxxxxx/ ': The requested URL returned error: 403