Clonar un repositorio

GitGitBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo clonar un repositorio de Git y explorar algunas opciones avanzadas de clonación. Git es un potente sistema de control de versiones ampliamente utilizado en el desarrollo de software. Clonar un repositorio es una habilidad fundamental que te permite crear una copia local de un repositorio remoto, lo que te permite trabajar en el código, realizar cambios y colaborar con otros. Este laboratorio está diseñado para principiantes y te guiará a través del proceso paso a paso, centrándose en las aplicaciones prácticas de la clonación de repositorios.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/clone("Clone Repo") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/clone -.-> lab-387454{{"Clonar un repositorio"}} git/branch -.-> lab-387454{{"Clonar un repositorio"}} git/log -.-> lab-387454{{"Clonar un repositorio"}} end

Comprender los repositorios remotos y clonar un repositorio básico

Antes de comenzar a clonar, entendamos qué es un repositorio remoto y por qué es importante en Git.

Un repositorio remoto es una versión de tu proyecto que se aloja en Internet o en una red en algún lugar. Te permite colaborar con otros al proporcionar una ubicación centralizada donde todos pueden enviar sus cambios y recibir actualizaciones. Piénsalo como un almacenamiento en la nube para tu código, pero con los beneficios adicionales del control de versiones.

GitHub es una de las plataformas más populares para alojar repositorios remotos de Git. Proporciona una interfaz basada en web para administrar repositorios, así como características adicionales como seguimiento de problemas, solicitudes de extracción (pull requests) y herramientas de gestión de proyectos. Otras plataformas similares incluyen GitLab y Bitbucket.

Ahora, clonemos un repositorio simple de GitHub. Usaremos el repositorio git-playground como ejemplo.

Primero, navega al directorio del proyecto donde deseas almacenar tu copia local:

cd ~/project

Este comando cambia tu directorio actual a ~/project. El símbolo ~ representa tu directorio de inicio, por lo que esta ruta generalmente se traduce a /home/tunombredeusuario/project.

Ahora, clonemos el repositorio:

git clone https://github.com/labex-labs/git-playground.git

Desglosemos este comando:

  • git clone es el comando de Git para crear una copia de un repositorio
  • https://github.com/labex-labs/git-playground.git es la URL del repositorio que queremos clonar

Cuando ejecutes este comando, Git hará lo siguiente:

  1. Creará un nuevo directorio llamado git-playground en tu ubicación actual (~/project).
  2. Inicializará un nuevo repositorio de Git en este directorio.
  3. Configurará un remoto llamado "origin" que apunte a la URL desde la que clonaste.
  4. Descargará todos los datos del repositorio remoto.
  5. Extraerá una copia de trabajo de la última versión de la rama principal (generalmente llamada "master" o "main").

Después de que el proceso de clonación se complete, deberías ver una salida similar a esta:

Cloning into 'git-playground'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (2/2), done.
remote: Total 9 (delta 1), reused 1 (delta 1), pack-reused 7
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.

Ahora, verifiquemos que el repositorio se haya clonado correctamente:

ls -l

Este comando lista el contenido de tu directorio actual. Deberías ver un nuevo directorio llamado git-playground.

cd git-playground

Este comando cambia tu directorio actual al repositorio recién clonado.

git status

Este comando muestra el estado de tu directorio de trabajo. Deberías ver un mensaje que indique en qué rama te encuentras (probablemente "main" o "master") y que tu directorio de trabajo está limpio.

¡Felicidades! Acabas de clonar tu primer repositorio. Esta copia local ahora está conectada al repositorio remoto en GitHub, lo que te permite obtener actualizaciones o enviar tus propios cambios (si tienes los permisos necesarios).

Recuerda, clonar un repositorio te da una copia completa de todos los archivos del proyecto y de toda la historia de Git. Esto significa que puedes trabajar en el proyecto sin conexión, hacer cambios, crear nuevas ramas y más, todo en tu máquina local.

Explorar el repositorio clonado

Ahora que hemos clonado el repositorio y nos encontramos en el directorio git-playground, exploremos su contenido en más detalle.

Primero, echemos un vistazo al contenido del directorio:

ls -la

Este comando muestra todos los archivos y directorios, incluyendo los ocultos. Deberías ver un directorio .git, que contiene toda la información relacionada con Git para este repositorio.

Esto es lo que podrías ver:

  • Archivos y directorios normales: Estos son los archivos reales del proyecto con los que puedes trabajar.
  • Directorio .git: Este directorio oculto es donde Git almacena toda su información de seguimiento.
  • Archivo .gitignore (si está presente): Este archivo le dice a Git qué archivos o directorios ignorar en el proyecto.

Ahora, veamos el historial de confirmaciones (commits) del repositorio:

git log --oneline

Esto muestra una versión condensada del historial de confirmaciones. Cada línea representa una confirmación, con su identificador único (hash) y el mensaje de confirmación.

Comprender la estructura de un repositorio clonado es crucial para un control de versiones efectivo. El directorio .git contiene toda la información que Git utiliza para administrar las versiones, mientras que los demás archivos y directorios representan el estado actual del proyecto.

Veamos también los repositorios remotos asociados con este repositorio local:

git remote -v

Este comando muestra los repositorios remotos vinculados a tu repositorio local. Deberías ver "origin" apuntando a la URL de GitHub desde la que clonaste.

origin  https://github.com/labex-labs/git-playground.git (fetch)
origin  https://github.com/labex-labs/git-playground.git (push)

Clonar en un directorio específico

A veces, es posible que desees clonar un repositorio en un directorio con un nombre diferente. Esto es útil cuando se trabaja en múltiples versiones de un proyecto o cuando se desea dar al directorio un nombre más descriptivo.

Vamos a clonar el mismo repositorio de nuevo, pero esta vez en un directorio llamado my-project:

cd ~/project
git clone https://github.com/labex-labs/git-playground.git my-project

Este comando hace dos cosas:

  1. Clona el repositorio git-playground
  2. Coloca los archivos clonados en un nuevo directorio llamado my-project en lugar de git-playground

Después de que el proceso de clonación se complete, deberías ver una salida similar a esta:

Cloning into 'my-project'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (2/2), done.
remote: Total 9 (delta 1), reused 1 (delta 1), pack-reused 7
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.

Esta función es especialmente útil cuando:

  • Ya tienes un directorio con el mismo nombre que el repositorio
  • Deseas clonar el mismo repositorio varias veces para diferentes fines
  • Deseas dar al directorio un nombre que tenga más sentido en el contexto de la estructura de tu proyecto local

Recuerda, el nombre del directorio no afecta al repositorio de Git en sí, es solo el nombre de la carpeta en tu máquina local.

Verifiquemos el contenido de nuestra nueva clonación:

cd my-project
ls -la
git remote -v

Estos comandos te mostrarán el contenido del directorio my-project y el repositorio remoto al que está conectado.

Clonación superficial con profundidad

A veces, es posible que solo necesites la versión más reciente de un repositorio sin su historial completo. En tales casos, puedes realizar una clonación superficial utilizando la opción --depth.

Vamos a clonar el repositorio de nuevo, pero esta vez solo obtendremos la confirmación (commit) más reciente:

cd ~/project
git clone --depth 1 https://github.com/labex-labs/git-playground.git shallow-repo

Este comando crea una clonación superficial con un historial truncado a solo la última confirmación. La opción --depth 1 le dice a Git que solo obtenga la confirmación más reciente.

Las clonaciones superficiales pueden ser significativamente más rápidas y ocupar menos espacio en disco, lo cual es especialmente útil para repositorios grandes cuando no necesitas el historial completo.

Para verificar la clonación superficial, navega al nuevo directorio y revisa el registro de confirmaciones de Git:

cd shallow-repo
git log --oneline

Solo deberías ver una confirmación en el registro.

Si más adelante decides que necesitas más historial, puedes obtenerlo utilizando:

No ejecutes este comando todavía. De lo contrario, el paso de verificación fallará.

git fetch --unshallow

Esto recuperará el historial completo del repositorio.

Clonar una rama específica

A veces, es posible que desees clonar solo una rama específica de un repositorio. Esto puede ser útil cuando solo estás interesado en una característica o versión particular del proyecto.

Vamos a clonar una rama específica del repositorio:

cd ~/project
git clone -b main https://github.com/labex-labs/git-playground.git branch-repo

La opción -b main le dice a Git que clone solo la rama main. Reemplaza main con el nombre de la rama que deseas clonar si es diferente.

Después de clonar, navega al nuevo directorio y verifica en qué rama te encuentras:

cd branch-repo
git branch

Solo deberías ver la rama main (o cualquier otra rama que hayas especificado).

Este enfoque puede ahorrar tiempo y espacio en disco cuando se trabaja con repositorios grandes donde solo se necesita una rama específica.

Resumen

En este laboratorio, has aprendido cómo clonar un repositorio de Git y has explorado varias técnicas avanzadas de clonación. Hemos cubierto:

  1. Comprender los repositorios remotos y la clonación básica de repositorios
  2. Explorar el contenido de un repositorio clonado
  3. Clonar un repositorio en un directorio específico con un nombre personalizado
  4. Crear una clonación superficial con un historial limitado
  5. Clonar una rama específica de un repositorio

Estas habilidades te permitirán trabajar de manera eficiente con proyectos existentes, contribuir al software de código abierto y gestionar tu propio código de manera más efectiva. Recuerda, la clonación es solo el comienzo: Git ofrece muchas más características poderosas para el control de versiones y la colaboración.

A medida que continúes tu viaje con Git, descubrirás que estas diferentes técnicas de clonación pueden ser increíblemente útiles en diversos escenarios, ayudándote a ahorrar tiempo y gestionar tus proyectos de manera más eficiente.