2013-02-12 8 views
10

Sto cercando di imparare come usare GitHub per controllare la versione del mio lavoro mentre vado. (Lavoro da solo, nessun collaboratore, nessun ramo diverso, solo io backup il mio lavoro mentre vado.) Ho creato repository Git privati ​​su BitBucket.org. Sto usando GitHub per OSX come Git GUI.Come posso risolvere un messaggio GitHub che dice che la punta del mio ramo attuale è dietro la sua controparte remota?

Ma quando faccio le modifiche ai file nel mio repository Git locale sul mio disco rigido, quindi utilizzare GitHub per OSX per cercare di "Commit & Sync", ottengo questo errore:

git: 'credential-osxkeychain' is not a git command. See 'git --help'. 
git: 'credential-osxkeychain' is not a git command. See 'git --help'. 
2013-02-12 02:49:07.409 GitHub for Mac Login[44516:707] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login", 
    "Password for 'https://[email protected]': " 
) 
git: 'credential-osxkeychain' is not a git command. See 'git --help'. 
git: 'credential-osxkeychain' is not a git command. See 'git --help'. 
To https://[email protected]/username/data.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://[email protected]/username/data.git' 
hint: Updates were rejected because the tip of your current branch is behind its remote counterpart. Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' in 'git push --help' for details. 
(256) 

(I modificato il precedente per nascondere il mio nome utente effettivo.)

Che cosa significa, come posso risolverlo e come evitare di ottenerlo in futuro?

risposta

23

Qualcuno (o voi) ha aggiornato il ramo remoto. Ciò fa sì che il tuo ramo remoto diventi più avanti del tuo attuale ramo. (questa è la tua filiale locale)

Ti suggerisco di git pull --rebase origin master e push dopo.

+0

Non ho sicuramente modificato il codice su bitbucket.org. L'unica cosa che ho fatto è sincronizzare usando GitHub per OSX e facendo "git add -A" o "git add -u" e "git commit" dalla CLI. Ho fatto un rollback a un commit precedente, forse questo è il problema? In ogni caso i miei file locali sono la versione canonica quindi non voglio fare un pull. Come posso risolvere l'errore e spingere i miei file locali? – incandescentman

+9

sì, questo è il problema. Quando esegui il rollback, non rimuovi i commit nel telecomando, rimangono semplicemente dove sono. Prova 'git push -f', ma fai attenzione che perderai quei commit in remoto. – ogzd

+0

Perfetto, grazie! – incandescentman

Problemi correlati