Saltar al contenido principal

Rama Clon Git: Un tutorial paso a paso

Para clonar una rama concreta, utiliza el comando git clone --single-branch --branch , sustituyendo por la rama deseada y por la URL del repositorio.
Actualizado 29 jul 2024

Imagina que estás escribiendo un libro y quieres experimentar con nuevas ideas sin estropear el original. Podrías empezar un cuaderno nuevo para cada idea, manteniendo tus borradores separados.

Git, un sistema de control de versiones, permite a los desarrolladores de software hacer lo mismo con el código mediante "ramas". Cada rama es como una vía de desarrollo independiente, que te permite explorar los cambios sin afectar al código base principal.

Git clone branch analogía con un libro

En este artículo, te guiaré en el uso de git clone, centrándome en la clonación de ramas específicas. Si quieres aprender más sobre Git, te recomiendo este curso de Introducción a Git.

Empecemos con una respuesta breve para los que tengáis prisa. Después, entraremos en más detalles.

Respuesta corta: Cómo clonar una rama específica

Para clonar una rama concreta de un repositorio git, utiliza el comando

git clone --single-branch --branch <branch_name> <repository_url>

Sustituye por el nombre de la rama deseada y por la URL del repositorio. Este comando crea una copia local de la rama especificada, permitiendo un desarrollo inmediato y centrado en esa rama.

Ejemplo

A lo largo de este artículo, utilizaremos este repositorio. Puedes utilizarlo para probar en tu máquina los comandos que aprendas. El repositorio contiene tres ramas:

  1. main: La rama por defecto con dos archivos de texto.
  2. add-new-file: Una rama en la que se ha añadido un tercer archivo.
  3. modify-file: Una rama en la que se ha modificado el segundo archivo.

Así es como podemos clonar la rama añadir-archivo-nuevo:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Qué es git clone?

Por defecto, git clone está diseñado para copiar todo el repositorio en un nuevo directorio de tu máquina local, clonando todas las ramas. Ésta es la sintaxis:

git clone <repository_url>

Para clonar el repositorio de ejemplo, podemos hacer lo siguiente:

git clone https://github.com/fran-aubry/git-clone-example.git

Tras ejecutar este comando, todas las ramas se copiarán en tu máquina local. Sin embargo, sólo son visibles los archivos de una rama a la vez, denominada rama checked-out. Después de clonar un repositorio, la rama por defecto (normalmente llamada main o master ) es la que se comprueba.

git clone rama comprobada por defecto

Cambio de ramas

Después de un clon completo, podemos cambiar (checkout) a la rama deseada utilizando el comandogit checkout. Por ejemplo, para consultar la rama modificar-archivo, haríamos lo siguiente:

git checkout modify-file

git check out rama

Profundidad de clonación

Cuando se trabaja con git, los cambios en una rama se guardan al confirmarlos mediante el comando git commit . Cada confirmación crea un nuevo estado de esa rama, al que puedes volver más tarde si es necesario. Piensa que cada confirmación crea una instantánea, y que git mantiene un registro de todas esas instantáneas. Puedes revertir una rama a cualquiera de estas instantáneas en cualquier momento.

El comando git clone, cuando se utiliza sin opciones, descarga cada confirmación de cada rama a tu máquina local. Dependiendo del tamaño del proyecto, esto podría ocupar una cantidad significativa de espacio en tu almacén local. Si sabes que no vas a necesitar todo el historial, puedes utilizar el parámetro --depth para especificar cuántas confirmaciones (o instantáneas) quieres clonar .

Para clonar la rama principal cargando sólo la confirmación más reciente, utiliza el siguiente comando:

git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git

Clonar una rama específica

Hemos aprendido a clonar un repositorio utilizando git clone. Por defecto, este comando clona todo en tu máquina local. A menudo, puede que sólo te interese trabajar en una rama concreta, por lo que sería más eficiente clonar sólo esa rama concreta. Este enfoque ahorra espacio en disco y te permite empezar a trabajar inmediatamente sin necesidad de cambiar de rama tras la clonación.

Siguiendo con la analogía de la escritura de libros, considera que se te asigna el trabajo de reescribir el segundo capítulo de un libro. En este caso, debes clonar sólo la rama en la que se está llevando a cabo esta tarea, ya que es innecesario tener acceso a ramas relacionadas con la revisión de otros capítulos.

Puedes ordenar a git que clone una única rama añadiendo los argumentos --single-branch y --branch seguidos del nombre de la rama:

git clone --single-branch --branch <branch_name> <repository_url>

Vamos a desglosar el comando:

  • git clone: Este es el comando git básico utilizado para copiar un repositorio desde una fuente remota a tu máquina local.
  • --single-branch: Esta opción indica a Git que clone sólo una rama. Si no se especifica ninguna rama, se clonará la rama por defecto.
  • --branch : Esta opción especifica la rama a clonar. El <nombre_rama> es el nombre de la rama que quieres clonar.
  • : Es la URL del repositorio.

Por ejemplo, para clonar sólo el archivo modificar-archivo de nuestro repositorio, podemos hacer lo siguiente:

git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git

Cómo trabajar con una rama clonada

Cuando trabajas en una rama, hay tres operaciones esenciales que debes realizar:

  1. Guarda tu trabajo actual creando una instantánea del estado actual.
  2. Sube tus cambios para que todo el mundo tenga acceso a ellos.
  3. Descargar los cambios de otras personas y fusionarlos con los tuyos.

Guarda tus cambios con git commit

En Git, guardar tu trabajo se llama crear un commit. Este proceso toma una instantánea del estado actual de la rama en la que estás trabajando.

El estado de la rama se guarda en tu máquina local después de cada confirmación, lo que te permite navegar entre las distintas etapas del progreso.

una ilustración de los commits de git en una rama de git

Para confirmar tus cambios en git, utiliza el comando git commit. Sin embargo, antes de confirmar tus cambios, git necesita saber qué archivos deseas incluir en la confirmación. Especifica los archivos que se van a guardar utilizando el comando git add. La sintaxis de este comando es la siguiente:

git add <path_to_file>

En la sintaxis, es la ruta al archivo que quieres confirmar. Por ejemplo, si estamos en la rama modify-file de nuestro repositorio de ejemplo y hemos añadido un párrafo a file2.txt, añadirías ese archivo ejecutando:

git add file2.txt

Después de añadir todos los archivos que quieras incluir en tu confirmación, puedes proceder a la confirmación ejecutando

git commit -m <message>

Aquí, el argumento debe ser un mensaje conciso entre comillas dobles, que describa brevemente los cambios. Por ejemplo:

git commit -m "Add paragraph"

He aquí algunas convenciones para el mensaje de confirmación. Son esenciales para garantizar la claridad y la comprensión entre todos los que trabajan en el proyecto:

  • Utiliza el modo imperativo: Comienza tu mensaje de confirmación con un verbo en forma imperativa (por ejemplo, "Añadir", "Corregir", "Actualizar"). Por ejemplo, en lugar de "Añadida nueva función", escribe "Añadir nueva función".
  • Sé conciso pero descriptivo: Procura que el mensaje sea breve, idealmente de menos de 50 caracteres. Sin embargo, prioriza la claridad al describir los cambios. En lugar de "Cambiar cosas", escribe "Actualizar el estilo de la barra de navegación".
  • Evita los mensajes genéricos: Evita los mensajes vagos como "Corregir errores" o "Hacer mejoras". En lugar de eso, sé específico: "Corregir un error en la validación del formulario de inicio de sesión" o "Mejorar la legibilidad de la documentación".

Sube tus cambios con git push

Al confirmar, creas una instantánea de los cambios en tu máquina local. Para que otros puedan acceder a tus cambios, tienes que subirlos. Para ello, utiliza el comando push.

La sintaxis básica del comando push en Git es:

git push <remote> <branch>

Vamos a desglosarlo:

  • : Este es el nombre del repositorio remoto donde quieres insertar tus cambios. Por defecto, cuando clonas un repositorio, el repositorio remoto se llama origen.
  • : Es el nombre de la rama cuyos cambios quieres empujar al repositorio remoto. Si omites este argumento, Git empujará los cambios basándose en la rama actual y en las configuraciones de seguimiento remoto.

He aquí algunos casos de uso común de git push:

  • Empujar cambios desde la rama actual: git push
  • Empujar los cambios de una rama concreta: git push origin

Descargar cambios con git pull

Git permite que grandes equipos trabajen simultáneamente en el mismo proyecto. Cuando los compañeros editan la misma rama en la que estás trabajando, tu rama local puede quedar desfasada en comparación con la rama remota.

Para descargar los commits de otras personas, utilizamos el comando git pull. La sintaxis básica del comando push en git es:

git pull <remote> <branch>

He aquí lo que hace cada parámetro:

  • : Es el nombre del repositorio remoto del que quieres extraer información. Por defecto, este repositorio se llama origen.
  • : Es el nombre de la rama de la que quieres extraer los cambios. Si no se especifica, git utiliza la rama actual junto con su rama ascendente.

He aquí algunos casos de uso común de git pull:

  • Extraer los cambios de la rama actual: git pull
  • Extraer los cambios de una rama concreta: git pull origin

Flujo de trabajo commit-pull-push

Cuando utilices Git, te recomiendo que saques actualizaciones con frecuencia para asegurarte de que tu rama local permanece actualizada. Te aconsejo que sigas las siguientes buenas prácticas:

  • Antes de empezar a trabajar, extrae las últimas actualizaciones de tu rama actual para asegurarte de que estás trabajando en la versión más reciente.
  • Haz commit a menudo, asegurándote de que cada commit se centra en cambios pequeños y relacionados lógicamente.
  • Después de hacer algunos cambios y crear un commit, vuelve a hacer pull para actualizar tu rama, por si alguien ha hecho actualizaciones simultáneamente.
  • Por último, empuja tus cambios al repositorio remoto.

Flujo de trabajo Git

Conflictos Git

Al ejecutar el comandogit pull para descargar cambios de un repositorio remoto, es posible encontrarse con un escenario en el que otro commit haya modificado las mismas líneas que tus commits locales. Git intenta fusionar automáticamente los cambios, y en muchos casos lo consigue. Por ejemplo, si se realizan cambios en distintas partes de un mismo archivo, Git puede fusionarlos sin problemas porque las confirmaciones afectan a secciones distintas.

Sin embargo, si tú y otro colaborador habéis editado el mismo párrafo, git será incapaz de determinar qué versión conservar, lo que dará lugar a un conflicto de fusión. En esta situación, tendrás que resolver manualmente el conflicto decidiendo qué cambios conservar.

Para más orientación sobre la resolución de conflictos, te recomiendo que leas este artículo sobre cómo resolver conflictos de fusión en Git.

Descarga de GitHub

En determinados escenarios, quieres una copia local de un repositorio para utilizarla sin intención de modificarla. Si se trata de un repositorio público, no es necesario instalar Git en tu máquina local. Puedes descargar directamente el repositorio desde GitHub haciendo clic en el botón Código seguido del botónDescargar Zip, como se muestra a continuación:

Ejemplo de descarga desde GitHub

Conclusión

La clonación Git te permite copiar un repositorio Git a tu máquina local, permitiéndote utilizar el código o ampliarlo añadiendo nuevas funcionalidades. Al clonar un repositorio, se descargan todas las ramas, lo que puede consumir una cantidad importante de espacio en disco.

Las ramas se utilizan para trabajar en cambios o características específicas. Clonar una rama específica te permite contribuir a esos cambios sin descargar trabajo no relacionado, por lo que requiere mucho menos espacio en disco y mantiene tu disco local más limpio.

Si quieres aprender más sobre el tema, te recomiendo esto Tutorial de GitHub y Git para principiantes.

Temas

¡Aprende Git con estos cursos!

curso

Introduction to Git

4 hr
43K
Familiarize yourself with Git for version control. Explore how to track, compare, modify, and revert files, as well as collaborate with colleagues using Git.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Git rename branch: Cómo cambiar el nombre de una rama local o remota

Aprende a renombrar ramas Git locales y remotas utilizando el terminal o la interfaz gráfica de usuario (GUI) de clientes populares como GitHub.
François Aubry's photo

François Aubry

tutorial

Git pull force: Cómo sobrescribir una rama local con una remota

Aprende por qué git pull --force no es la mejor forma de sobrescribir una rama local con la versión remota, y descubre el método adecuado utilizando git fetch y git reset.
François Aubry's photo

François Aubry

tutorial

Tutorial de Git Revert y Git Reset para principiantes

Una guía tutorial para principiantes que muestra cómo utilizar los comandos Git Revert y Reset.
Zoumana Keita 's photo

Zoumana Keita

10 min

tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

17 min

tutorial

Git Prune: Qué es la poda Git y cómo usarla

La poda Git es un comando Git que elimina del repositorio los objetos que ya no son accesibles desde ninguna confirmación o rama, ayudando a liberar espacio en disco.
François Aubry's photo

François Aubry

5 min

tutorial

Tutorial de GIT Push y Pull

Aprende a realizar solicitudes de Git PUSH y PULL con GitHub Desktop y la línea de comandos.

Olivia Smith

13 min

See MoreSee More