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: La URL solicitada generó el error: 401 al intentar acceder a
> https://nombre de host/user/repo.git/info/refs?service=git-receive-pack
> fatal: la solicitud de HTTP falló
> Error: La URL solicitada generó el error: 403 al intentar acceder a
> https://nombre de host/user/repo.git/info/refs
> fatal: la solicitud de HTTP falló
> Error: https://nombre de host/user/repo.git/info/refs no encontrado: ¿ejecutaste git
> update-server-info en el servidor?
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 puedes descargar la última versión 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, y la URL distingue entre mayúsculas y minúsculas.
Puedes encontrar la URL del repositorio local abriendo la línea de comando y escribiendo git remote -v
:
$ git remote -v
# Visualiza los remotos existentes
> origin https://github.com/ghost/reactivecocoa.git (fetch)
> origin https://github.com/ghost/reactivecocoa.git (push)
$ git remote set-url origin https://github.com/ghost/ReactiveCocoa.git
# Cambia la URL del remoto 'origen'
$ git remote -v
# Verifica la nueva URL remota
> origin https://github.com/ghost/ReactiveCocoa.git (fetch)
> origin https://github.com/ghost/ReactiveCocoa.git (push)
Como alternativa, puedes cambiar la URL a través de nuestra aplicación GitHub Desktop.
Proporciona un token de acceso
Para acceder a GitHub, debes autenticarte con un token de acceso personal en vez de con tu contraseña. Para obtener más información, consulta la sección "Crear un token de acceso personal".
Comprueba tus 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 quieres ingresar tu nombre de usuario y contraseña cada vez que interactúes con el repositorio remoto, puedes activar el almacenamiento en caché de las contraseñas. 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, consulta la sección "Acerca de los repositorios remotos".
Error: Repositorio no encontrado
Si ves este error cuando clonas un repositorio, significa que éste no existe, no tienes permiso para acceder a él, o tu instancia de GitHub Enterprise Server se encuentra en modo privado. Hay algunas cuantas formas de solucionar este error, dependiendo de cuál sea su causa.
Comprueba que no haya errores tipográficos
Los errores tipográficos suceden, y los nombres de los repositorios distinguen mayúsculas de minúsculas. Si intentas clonar git@<em>nombre de host</em>:user/repo.git
, pero el repositorio se llama en realidad User/Repo
recibirás 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, consulta "Clonar un repositorio".
Para actualizar el remoto en un repositorio existente, consulta la sección "Administrar los 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
- Como colaborador del repositorio
- Como miembro de un equipo que tiene 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 llave SSH que estás utilizando esté adjunta a tu cuenta personal en GitHub Enterprise Server. Para comprobarlo, escribe lo siguiente en la línea de comando:
$ ssh -T git@nombre de host
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
Si el repositorio pertenece a una organización y estás utilizando una llave SSH generada por una OAuth App, puede que algún dueño de la organización haya restringido el acceso OAuth App. Para obtener más información, consulta la sección "Acerca de las restricciones de acceso a las OAuth Apps".
Para obtener más información, consulta "Agregar una nueva clave SSH a tu cuenta de GitHub".
Comprueba si tu instancia se encuentra en el modo privado
Si tu administrador del sitio ha habilitado el modo privado en tu instancia de GitHub Enterprise, los clones anónimos creados sobre git://
se inhabilitará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://nombre de host/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. Desearás cambiar la rama por defecto 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'