2009-12-25 6 views
39

Estoy tratando de configurar la gitosis de acuerdo con las instrucciones here.git Advertencia: CABEZAL remoto se refiere a una referencia inexistente, no se puede sacar

Funciona bien desde mi máquina remota, por lo que el servidor parece estar bien configurado, pero también me gustaría poder desarrollar en mi máquina servidor gitosis desde una cuenta de usuario diferente (no el usuario git creado en la gitosis preparar).

He copiado la clave y modificar el gitosis.conf para que la otra cuenta de usuario tiene acceso, pero cuando intento de clonar parece que funciona excepto al final que dice:

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

y yo termino con un directorio vacío a excepción de .git

he google para esto un poco, pero no tienen una visión real de lo que el problema es

+0

Para aquellos que se encontraron con este problema con GitHub y tomaron el primer Hit en Google, ver http://stackoverflow.com/questions/1485578/how-do-i-change-a-git-remote-head-to -point-to-something-además-master y https://help.github.com/articles/error-remote-head-refers-to-nonexistent-ref-unable-to-checkout – Tino

Respuesta

25

me enteré de lo que estaba pasando mal. El problema fue que no estaba prestando atención a las advertencias cuando estaba presionando mi servidor de gitosis, así que no me di cuenta de que no estaba presionando una rama en particular. Había asumido que simplemente impulsaría la corriente, pero ese no es el caso hasta que configuró:

git config push.default current 
+0

Esta es la publicación que me avisó: http://stackoverflow.com/questions/1475468/git-push-failed-you-did-not-specify-any-refspecs-to-push y el hecho de que cuando Hice git branch -r según la respuesta de Michael Krelin y no obtuve nada. – srboisvert

+0

Gracias por esto. Me encontré con el mismo problema. – Dilawar

+0

Muchas gracias por esto. –

21
  1. ¿tienen el git branch -r y git checkout -b master <remotebranchofinterest>

  2. Compruebe el archivo HEAD en el archivo .git remoto.

  3. Comprobar si alguien ya hizo la pregunta: here

1

que sea sencillo. Añadir a la autorización gitosis y la clave SSH para la cuenta de usuario en el servidor y el clon como de costumbre:

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

Eso es exactamente lo que hice y eso dio como resultado el mensaje de error. El acceso parece estar bien basado en la salida de git (habilité la depuración para darme más información). – srboisvert

2

Tuve un problema similar. Parece que en mi primer impulso hice git push origin master:/refs/heads/master en lugar de git push origin master:refs/heads/master (observe la barra adicional). Esto causó que mi maestro se coloque (en el repositorio remoto) en refs/heads/refs/heads/master en lugar de refs/heads/master. La solución fue reorganizar las carpetas en remoto y volver a presionar.

0

Si está intentando clonar más de http://, tenga en cuenta que necesita un git más nuevo que el 1.6.6; de lo contrario, debería usar un URI basado en git://.

18

Una causa más de esta advertencia podría ser que falta la rama master en el repositorio (OR) el repositorio NO utiliza una rama maestra. Si este es el caso, simplemente no se preocupe por la Advertencia !, utilizar

git checkout <some_existing_branch> 

La advertencia se debe a que, por defecto, después de que el git pull intenta obtener en la rama principal.

+1

Este es un problema para mí en este momento. Si está usando pip para instalar los paquetes de Python desde git, parece que git intenta primero buscar el maestro, luego cambia a cualquier rama o compromiso que le pida. El primer paso fallará si no tiene maestro en el repositorio. – tobych

0

Uso tortoiseGit y no conozco cómo usar git a través de la línea de comandos. Así que siempre me pregunto cómo puedo evitar ese problema en mi tortuga. Entonces tal vez no estoy solo.He arreglado el problema de esta manera:

  • clon del repositorio remoto
  • haga clic derecho en la carpeta raíz y desde ahí elegir una rama existente

Im mi caso, sólo había una rama "dev ", sin maestro. Así que cuando traté de clonar no había una sucursal local para verificar y, tan pronto como cambié a "dev", pude verificar todo el contenido con éxito. Espero que sea útil.

Cuestiones relacionadas