2012-12-01 1 views
16

Quando si utilizza il GitHub for Mac App (versione 87), ho ricevuto il seguente errore:GitHub per l'errore Mac: git: 'credenziale-osxkeychain' non è un comando git

git: 'credential-osxkeychain' is not a git command. See 'git --help'.

error: The requested URL returned error: 403 while accessing https://github.com/[PROJECT URL]/info/refs

fatal: HTTP request failed (256)

La riga di comando git strumenti (versione 1.8.0) sono installati su /usr/local/git/bin e git-credential-osxkeychain è stato installato correttamente su /usr/local/git/bin.

Come posso risolvere questo errore?

+2

cosa hai digitato? –

+2

Non ho digitato nulla, ho premuto il pulsante Sync. Ho una soluzione, ma StackOverflow non mi permetterà di postarlo fino a dopo 8 ore da quando sono un nuovo utente. –

+0

'sudo ln -s/usr/local/git/bin/git-credential-osxkeychain/usr/local/bin/git-credential-osxkeychain' dovrebbe risolverlo. @William ha una risposta simile anche se ha creato il softlink in '/ usr/bin' invece di'/usr/local/bin' –

risposta

10

L'origine di questo problema è che GitHub per Mac utilizza un percorso di directory diverso per i suoi eseguibili rispetto a Command Line Tools.

GitHub for Mac: /Applications/GitHub.app/Contents/Resources/git/bin

riga di comando Strumenti:/usr/local/git/bin/

Così, quando GitHub per Mac tenta di sincronizzare un ramo presenta l'errore perché non riesce a trovare il file eseguibile git-credential-osxkeychain.

per risolvere il problema:

  1. Terminal lancio
  2. Creare un collegamento simbolico per git-credenziale-osxkeychain da riga di comando Strumenti Dir a GitHub for Mac Dir

ln -s <git-command-line-tools dir path>/git-credential-osxkeychain <github for mac path>/git-credential-osxkeychain

Questo è il comando che ho usato sul mio sistema:

ln -s /usr/local/git/bin/git-credential-osxkeychain /Applications/GitHub.app/Contents/Resources/git/bin/git-credential-osxkeychain

+4

Ho avuto lo stesso problema con l'app di 'SourceTree' di Atlassian - il problema di fondo era lo stesso. Sono stato in grado di risolvere il problema passando dal git incorporato di 'SourceTree' a quello installato a livello globale - che era abbastanza recente - selezionando' SourceTree> Preferences> Git', 'Use System Git'. Nota anche che Github per Mac ora ti permette di andare nella direzione opposta: puoi scegliere di far funzionare la versione git incorporata come quella installata globalmente tramite 'Preferenze'. – mklement0

+2

La soluzione funziona allo stesso modo per SourceTree, solo la destinazione del collegamento diventa '/ Applications/SourceTree.app/Contents/Resources/git_local/bin' La versione corrente del client git di Mac include' git-credential-osxkeychain', quindi +1 per indicare la preferenza 'Use System Git'. Questo è probabilmente il modo in cui "dovrebbe" essere fatto per gli utenti di SourceTree. Altrimenti, se/quando git aggiorna e SourceTree no, 'git-credential-osxkeychain' avrà una versione non corrispondente con il resto degli eseguibili git che SourceTree utilizzerà. –

+0

Questo accade anche per SmartGit per mac. La soluzione è la stessa per smartgit 'ln -s/usr/local/git/bin/git-credential-osxkeychain/Applicazioni/SmartGit.app/Contenuti/Risorse/git/bin/git-credential-osxkeychain' – hitautodestruct

2

questo avviene sempre con l'albero di origine app e la soluzione che si modificano le impostazioni per utilizzare la non git sistema git embedded con source- albero perché l'albero dei sorgenti utilizza una versione precedente oppure è possibile aggiornare le impostazioni con il percorso per git eseguibile e dovresti trovarlo in/usr/bin/git oppure puoi stampare quale git e puntare l'app dell'albero sorgente per utilizzarlo

0

Impostazione

/usr/local/git/bin/git-credential-osxkeychain

nel percorso funziona anche, o dovunque il percorso può essere.

Non sono sicuro quale sia la soluzione preferibile.

0

Dopo aver risolto questo problema con uno dei miei colleghi, siamo riusciti a risolvere semplicemente aggiornando SourceTree all'ultima versione.

Per gli spettatori futuri, prima di andare giù per il sentiero link simbolico, assicurarsi di aver attivato gli aggiornamenti automatici per albero dei sorgenti (Preferenze> scheda di aggiornamento), e quindi controllare gli aggiornamenti (nel menu struttura di origine su Mac)

0

ho dovuto fare sudo ln -s /usr/local/git/bin/git-credential-osxkeychain /usr/bin/git-credential-osxkeychain perché ho aggiornato git e poi copiato/usr/local/git/bin/git a/usr/bin/git

0

http://backlogtool.com/git-guide/cn/reference/trouble-shooting.html

HTTPS richiede le password ogni volta che si esegue push/pull se sei Windows, solo per la prima volta

ma in Mac, è possibile utilizzare l'assistente di autenticazione collegato alla catena di chiavi. Gli utenti che utilizzano Homebrew installano automaticamente gli assistenti di autenticazione durante l'installazione di Git. Inoltre, è necessario installare manualmente.

Se si desidera verificare di disporre di un assistente di certificazione di installazione, è possibile utilizzare il seguente comando per confermare.

$ **git credential-osxkeychain**

Se l'assistente di autenticazione non è installato, vengono visualizzati i seguenti contenuti.

git: 'credential-osxkeychain' is not a git command. See 'git --help'.

A questo punto, è possibile scaricare l'assistente di autenticazione per la strada giusta.

step1. **curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain**

step2. **chmod u+x git-credential-osxkeychain**

step3. **mv git-credential-osxkeychain /usr/local/bin**

Dopo l'installazione, impostare l'assistente di autenticazione aperto.

step4. **git config --global credential.helper osxkeychain**