HDP115

Clonar repositorios desde GitHub

Aprende a clonar repositorios desde GitHub a tu máquina local, entender las diferentes opciones de clonación y resolver problemas comunes durante el proceso.

CE

Cristian Escalante

Última actualización: 27 de abril de 2025

git
control de versiones
desarrollo

Clonar repositorios desde GitHub

Una vez que tienes una cuenta en GitHub y has explorado algunos repositorios, el siguiente paso es aprender a clonar estos repositorios a tu máquina local para poder trabajar con ellos. Clonar un repositorio significa crear una copia completa del repositorio remoto en tu computadora, incluyendo todo el historial de cambios.

¿Qué significa clonar un repositorio?

Cuando clonas un repositorio de GitHub, estás:

  1. Descargando una copia completa del repositorio, incluyendo todos los archivos y su historial de cambios
  2. Configurando automáticamente un remoto llamado "origin" que apunta al repositorio original
  3. Configurando una rama local que sigue (tracks) la rama principal del repositorio remoto

Esto te permite trabajar con el código localmente, hacer cambios, y luego enviar esos cambios de vuelta al repositorio remoto si tienes permisos para hacerlo.

Métodos para clonar un repositorio

Hay varias formas de clonar un repositorio desde GitHub:

Método 1: Clonar usando HTTPS

Este es el método más común y funciona en casi todos los entornos:

git clone https://github.com/usuario/repositorio.git

Con HTTPS:

  • Ventajas: Funciona a través de firewalls, fácil de configurar
  • Desventajas: Puede requerir ingresar credenciales frecuentemente (a menos que configures un helper de credenciales)

Método 2: Clonar usando SSH

Si has configurado claves SSH en tu cuenta de GitHub:

git clone git@github.com:usuario/repositorio.git

Con SSH:

  • Ventajas: No requiere ingresar contraseñas después de la configuración inicial, más seguro
  • Desventajas: Requiere configuración adicional de claves SSH

Método 3: Clonar usando GitHub CLI

Si tienes instalada la interfaz de línea de comandos de GitHub:

gh repo clone usuario/repositorio

Con GitHub CLI:

  • Ventajas: Autenticación simplificada, acceso a más funcionalidades de GitHub
  • Desventajas: Requiere instalar una herramienta adicional

Pasos para clonar un repositorio desde GitHub

Paso 1: Encontrar el repositorio que quieres clonar

  1. Navega a GitHub y busca el repositorio que te interesa
  2. También puedes ir directamente a la URL del repositorio si la conoces: https://github.com/usuario/repositorio

Paso 2: Obtener la URL del repositorio

  1. En la página del repositorio, haz clic en el botón verde "Code"
  2. Selecciona el protocolo que prefieras usar (HTTPS, SSH o GitHub CLI)
  3. Copia la URL que se muestra

Paso 3: Clonar el repositorio

  1. Abre tu terminal o línea de comandos
  2. Navega al directorio donde quieres guardar el repositorio clonado
  3. Ejecuta el comando git clone con la URL que copiaste:
# Usando HTTPS
git clone https://github.com/usuario/repositorio.git

# O usando SSH
git clone git@github.com:usuario/repositorio.git

Paso 4: Navegar al directorio del repositorio

Una vez completada la clonación, Git creará un nuevo directorio con el nombre del repositorio. Navega a ese directorio:

cd repositorio

Opciones avanzadas de clonación

Clonar una rama específica

Si solo quieres clonar una rama específica del repositorio:

git clone -b nombre-rama https://github.com/usuario/repositorio.git

Clonar con un nombre de directorio diferente

Por defecto, Git crea un directorio con el nombre del repositorio. Si quieres usar un nombre diferente:

git clone https://github.com/usuario/repositorio.git mi-directorio

Clonar de forma superficial (shallow clone)

Si el repositorio es muy grande y solo necesitas los cambios más recientes, puedes hacer un clon superficial:

# Clonar solo el commit más reciente
git clone --depth=1 https://github.com/usuario/repositorio.git

# Clonar solo los últimos N commits
git clone --depth=N https://github.com/usuario/repositorio.git

Clonar sin descargar el historial completo

Si solo te interesa el estado actual del código, sin el historial:

git clone --no-checkout https://github.com/usuario/repositorio.git
cd repositorio
git checkout main

Verificar la configuración después de clonar

Después de clonar un repositorio, es buena idea verificar la configuración:

Ver los remotos configurados

git remote -v

Deberías ver algo como:

origin  https://github.com/usuario/repositorio.git (fetch)
origin  https://github.com/usuario/repositorio.git (push)

Ver las ramas locales y remotas

# Ver ramas locales
git branch

# Ver todas las ramas (locales y remotas)
git branch -a

Ver la configuración del repositorio

git config --list

Mantener tu clon actualizado

Una vez que has clonado un repositorio, puedes mantenerlo actualizado con los cambios del repositorio remoto:

# Obtener los últimos cambios del repositorio remoto
git pull origin main

O si prefieres un enfoque en dos pasos:

# Descargar los cambios sin integrarlos
git fetch origin

# Ver qué ha cambiado
git log HEAD..origin/main

# Integrar los cambios
git merge origin/main

Clonar repositorios privados

Para clonar repositorios privados, necesitas:

  1. Tener acceso al repositorio (ser propietario o colaborador)
  2. Estar autenticado correctamente:
    • Con HTTPS: Proporcionar tu nombre de usuario y contraseña o token de acceso personal
    • Con SSH: Tener configuradas tus claves SSH correctamente

Si estás usando HTTPS y no quieres ingresar tus credenciales cada vez:

# Almacenar credenciales en caché (temporalmente)
git config --global credential.helper cache

# O almacenarlas permanentemente
git config --global credential.helper store

Solución de problemas comunes

Error: "Repository not found"

Problema: No puedes clonar un repositorio que debería existir.

Solución:

  1. Verifica que la URL sea correcta
  2. Asegúrate de tener acceso al repositorio (si es privado)
  3. Comprueba tu autenticación

Error: "Permission denied (publickey)"

Problema: No puedes clonar usando SSH debido a problemas con las claves.

Solución:

  1. Verifica que tus claves SSH estén configuradas correctamente
  2. Asegúrate de que tu clave pública esté añadida a tu cuenta de GitHub
  3. Prueba la conexión: ssh -T git@github.com

Error: "fatal: destination path already exists and is not an empty directory"

Problema: Ya existe un directorio con el nombre del repositorio.

Solución:

  1. Usa un nombre diferente para el directorio: git clone URL nuevo-nombre
  2. O elimina/renombra el directorio existente

Repositorio muy grande o conexión lenta

Problema: La clonación tarda demasiado o falla por el tamaño del repositorio.

Solución:

  1. Usa un clon superficial: git clone --depth=1 URL
  2. Clona solo la rama que necesitas: git clone -b rama URL
  3. Considera usar Git LFS si el repositorio contiene archivos grandes

Buenas prácticas

1. Organiza tus repositorios clonados

Mantén tus repositorios clonados organizados en directorios específicos según su propósito o proyecto.

2. Documenta los repositorios que clonas

Mantén un registro de qué repositorios has clonado y por qué, especialmente si son muchos.

3. Actualiza regularmente

Mantén tus repositorios clonados actualizados con git pull regularmente para evitar conflictos grandes.

4. Verifica antes de hacer cambios

Si planeas contribuir, verifica que estás trabajando con la versión más reciente y en la rama correcta.

5. Considera hacer fork primero

Si planeas contribuir a un proyecto en el que no eres colaborador directo, considera hacer fork del repositorio antes de clonarlo.

Clonar vs. Descargar ZIP

GitHub ofrece la opción de descargar un repositorio como archivo ZIP. Esta opción:

  • Ventajas: Rápida, no requiere Git instalado, útil para obtener solo los archivos actuales
  • Desventajas: No incluye el historial de Git, no configura remotos, no permite enviar cambios fácilmente

En general, clonar es preferible si planeas trabajar con el código y posiblemente contribuir, mientras que descargar ZIP es útil si solo necesitas ver o usar el código una vez.

Conclusión

Clonar repositorios desde GitHub es una habilidad fundamental para cualquier desarrollador que trabaje con Git. Te permite acceder a millones de proyectos de código abierto, contribuir a ellos, y colaborar eficientemente con otros desarrolladores. Dominar las diferentes opciones de clonación y saber solucionar problemas comunes te ayudará a trabajar de manera más eficiente con repositorios remotos.

En la próxima lección, aprenderemos cómo realizar cambios en repositorios clonados y enviarlos de vuelta a GitHub mediante commits y pushes.

Crear una cuenta en GitHub
Aprende a crear y configurar una cuenta en GitHub, la plataf...
Realizar commits y pushes hacia GitHub
Aprende a realizar cambios en repositorios locales, hacer co...
Referencias
Git. Git - git-clone Documentation. https://git-scm.com/docs/git-clone
Scott Chacon and Ben Straub. Pro Git Book - Git Basics - Getting a Git Repository. https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025