2009-12-25 17 views
39

Sto provando a impostare gitosi secondo le istruzioni here.git Avviso: HEAD remoto si riferisce a ref inesistente, impossibilitato a pagare

Funziona correttamente dalla mia macchina remota, quindi il server sembra essere configurato bene, ma mi piacerebbe anche essere in grado di fare lo sviluppo sulla mia macchina gitosis server da un account utente diverso (non l'utente git creato nella gitosi impostare).

Ho copiato la chiave e modificato il gitosis.conf in modo che l'altro account utente ha accesso, ma quando provo a clonarlo sembra funzionare tranne che alla fine dice:

git Warning: remote HEAD refers to nonexistent ref, unable to checkout 

ed io alla fine con una directory vuota tranne che per .git

sono google per questo un po ', ma non hanno una visione reale in quello che è il problema

+0

Per coloro che ha incontrato questo problema con GitHub e ha preso il primo Hit su Google, vedi http://stackoverflow.com/questions/1485578/how-do-i-change-a-git-remote-head-to -Point-to-qualcosa-oltre-master e https://help.github.com/articles/error-remote-head-refers-to-nonexistent-ref-unable-to-checkout – Tino

risposta

25

Ho scoperto cosa stava andando storto. Il problema era che non stavo prestando attenzione agli avvertimenti quando stavo spingendo sul mio server gitosis quindi non mi ero reso conto che non stavo spingendo un particolare ramo. Avevo ipotizzato che avrebbe semplicemente spinto la corrente ma non è il caso finché non hai impostato:

git config push.default current 
+0

Questo è il post che mi ha soffiata ad esso: http://stackoverflow.com/questions/1475468/git-push-failed-you-did-not-specify-any-refspecs-to-push e il fatto che, quando Ho fatto il git branch -r basato sulla risposta di Michael Krelin e non ho ottenuto nulla indietro. – srboisvert

+0

Grazie per questo. Ho incontrato lo stesso problema. – Dilawar

+0

Mille grazie per questo. –

21
  1. fare il git branch -r e git checkout -b master <remotebranchofinterest>

  2. Controllare il file HEAD in .git remoto.

  3. Verificare se qualcuno già ha fatto la domanda: here

1

mantenerlo semplice. Aggiungi autorizzazione gitosis e chiave SSH per l'account utente sul tuo server e clona come al solito:

[email protected]$ git clone [email protected]:repo.git 
+0

Questo è esattamente quello che ho fatto e che ha generato il messaggio di errore. L'accesso sembra essere corretto in base all'uscita git (ho abilitato il debug per darmi più informazioni). – srboisvert

2

Aveva un problema simile. Sembra che alla mia prima spinta ho fatto git push origin master:/refs/heads/master invece di git push origin master:refs/heads/master (notare la barra in più). Ciò ha causato l'inserimento del mio master (nel repository remoto) a refs/heads/refs/heads/master anziché refs/heads/master. La soluzione era riorganizzare le cartelle su remoto e re-push.

0

Se si sta tentando di clonare su http://, si noti che è necessario un git più recente di 1.6.6 - altrimenti è necessario utilizzare un URI basato su git://.

18

Un'altra possibile causa di questo avviso potrebbe essere che il ramo master nel repository è mancante (OR) il repository NON usa un ramo master. Se questo è il caso, basta non preoccuparti per l'Attenzione !, utilizzare

git checkout <some_existing_branch> 

L'avvertimento è perché, per impostazione predefinita, dopo che il git pull cerca di cassa nel ramo master.

+1

push.default Questo è un problema per me in questo momento. Se stai usando pip per installare i pacchetti Python da Git, sembra git cerca di cassa maestro prima, poi passa a qualsiasi filiale o commettere gli chiedi di. Il primo passaggio fallirà se non si dispone di master nel repository. – tobych

0

Uso tortoiseGit e non sono a conoscenza di come utilizzare git tramite la riga di comando. Quindi mi chiedo sempre come posso evitare questo problema nella mia tartaruga. Quindi forse non sono solo.Ho risolto il problema in questo modo:

  • clone repo remoto
  • tasto destro del mouse sulla cartella principale e da lì scegliere un ramo esistente

Im il mio caso, c'era solo un ramo "dev ", senza padrone. Quindi, quando ho provato a clonare, non c'era alcuna filiale locale da controllare e non appena sono passato a "dev" è stato possibile controllare tutti i contenuti con successo. Spero che sarà utile.

Problemi correlati