Errores de clonación de HTTPS
Existen algunos errores comunes cuando se utiliza HTTPS con Git. Estos errores suelen indicar que tienes una versión antigua de Git o que no tienes acceso al repositorio.
Aquí aparece un ejemplo de un error de HTTPS que puedes recibir:
> error: The requested URL returned error: 401 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs?service=git-receive-pack
> fatal: HTTP request failed
> Error: The requested URL returned error: 403 while accessing
> https://HOSTNAME/USER/REPO.git/info/refs
> fatal: HTTP request failed
> Error: https://HOSTNAME/USER/REPO.git/info/refs not found: did you run git
> update-server-info on the server?
Comprueba tu versión de Git
No hay una versión mínima de Git que sea necesaria para interactuar con GitHub Enterprise Server, pero hemos descubierto que la versión 1.7.10 es una versión estable y cómoda que está disponible en muchas plataformas. Siempre puede descargar la versión más reciente en el sitio web de Git.
Asegúrate de que el remoto sea correcto
El repositorio que estás tratando de extraer debe existir en tu instancia de GitHub Enterprise Server.
Para encontrar la dirección URL del repositorio local, abra la línea de comandos y escriba git remote -v
:
$ git remote -v
# View existing remotes
> origin https://github.com/ghost/cocoareactive.git (fetch)
> origin https://github.com/ghost/cocoareactive.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# Change the 'origin' remote's URL
$ git remote -v
# Verify new remote URL
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
También puede cambiar la dirección URL desde nuestra aplicación GitHub Desktop.
Proporciona un token de acceso
Para acceder a GitHub, debes autenticarte con un personal access token en vez de con tu contraseña. Para obtener más información, vea «Administración de tokens de acceso personal».
Comprobar los permisos
Cuando se te solicite un nombre de usuario y contraseña, asegúrate de usar una cuenta que tenga acceso al repositorio.
Tip
Si no deseas escribir tus credenciales cada vez que interactúes con el repositorio remoto, puedes activar el almacenamiento en caché de credenciales. Si ya estás utilizando el almacenamiento de credenciales en caché, por favor, asegúrate de que tu computadora tenga las credenciales correctas almacenadas en caché. Las credenciales erróneas o desactualizadas causarán que falle la autenticación.
Usar SSH en su lugar
Si ya has configurado claves SSH, puedes usar el clon SSH en lugar de HTTPS. Para obtener más información, vea «Acerca de los repositorios remotos».
Error: Repositorio no encontrado
Si aparece este error al clonar un repositorio, significa que el repositorio no existe, no tienes permiso para acceder a él o tu instancia de GitHub Enterprise Server está en modo privado. Hay varias soluciones para este error que varían en función de la causa.
Revise la ortografía
Los errores tipográficos se producen. Si intenta clonar git@HOSTNAME:owner/repotile.git
, pero el repositorio se denomina owner/repoti1e
, aparecerá este error.
Para evitar este error, cuando clonas, copia y pega siempre la URL del clon desde la página del repositorio. Para obtener más información, vea «Clonar un repositorio».
Para actualizar el repositorio distante en un repositorio existente, consulta "Administrar repositorios remotos".
Comprobar tus permisos
Si estás tratando de clonar un repositorio privado pero no tienes permiso para ver el repositorio, recibirás este error.
Verifica si tienes acceso al repositorio de alguna de las siguientes maneras:
- Como propietario del repositorio
- Un colaborador en el repositorio
- Un miembro de un equipo que tenga acceso al repositorio (si el repositorio pertenece a una organización)
Comprueba tu acceso SSH
En muy raros casos, es posible que no tengas el acceso SSH correcto al repositorio.
Debes asegurarte de que la clave SSH que estás usando se encuentre asociada a tu cuenta personal en GitHub Enterprise Server. Para comprobarlo, escriba lo siguiente en la línea de comandos:
$ ssh -T git@HOSTNAME
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
Para obtener más información, consulte Agregar una clave SSH nueva a su cuenta de GitHub.
Comprueba si tu instancia se encuentra en el modo privado
Si su administrador del sitio ha habilitado el modo privado en su instancia de GitHub Enterprise, los clones anónimos creados sobre git://
se deshabilitarán. Si no puedes clonar un repositorio, comunícate con el administrador de tu sitio.
Comprueba que el repositorio realmente exista
Si nada de lo anterior funciona, verifica que el repositorio realmente exista en tu instancia de GitHub Enterprise Server. Si estás intentando subir a un repositorio que no existe, se producirá este error.
Error: HEAD remoto remite a una referencia que no existe, imposible de controlar
Este error ocurre si la rama por defecto de un repositorio se ha eliminado en tu instancia de GitHub Enterprise Server.
Es muy fácil detectar este error; Git te dará una advertencia cuando intentes clonar el repositorio:
$ git clone https://HOSTNAME/USER/REPO.git
# Clone a repo
> Cloning into 'repo'...
> remote: Counting objects: 66179, done.
> remote: Compressing objects: 100% (15587/15587), done.
> remote: Total 66179 (delta 46985), reused 65596 (delta 46402)
> Receiving objects: 100% (66179/66179), 51.66 MiB | 667 KiB/s, done.
> Resolving deltas: 100% (46985/46985), done.
> warning: remote HEAD refers to nonexistent ref, unable to checkout.
Para resolver el error, es necesario que seas un administrador del repositorio en tu instancia de GitHub Enterprise Server. Le recomendamos cambiar la rama predeterminada del repositorio.
Luego de hacerlo, puedes obtener una lista de todas las ramas disponibles en la línea de comando:
$ git branch -a
# Lists ALL the branches
> remotes/origin/awesome
> remotes/origin/more-work
> remotes/origin/new-main
Luego, puedes pasar a tu nueva rama:
$ git checkout new-main
# Create and checkout a tracking branch
> Branch new-main set up to track remote branch new-main from origin.
> Switched to a new branch 'new-main'