Git Clone Branch: cómo clonar una rama específica

A diferencia de los sistemas de control de versiones centralizados más antiguos, como SVN y CVS, Git se distribuye. Cada desarrollador tiene el historial completo y el control de su código de forma local o remota. También pueden acceder o manipular varias partes del código según lo consideren adecuado desde diferentes ubicaciones.

Desde que Linus Torvalds (el famoso creador del kernel del sistema operativo Linux) creó Git en 2005 para el desarrollo del kernel de Linux, se ha convertido en el sistema de control de versiones moderno más utilizado en el mundo.

En este artículo, le presentaré los flujos de trabajo de clonación y rama de Git y le mostraré cómo puede clonar una rama específica según sus necesidades. ¡Vamos a empezar! ?

Prerrequisitos

  • Conocimientos básicos de la terminal
  • Capacidad para escribir comandos en la terminal
  • Git instalado (todavía te mostraré cómo)
  • Una cuenta de GitHub
  • Una sonrisa en tu cara (¿Pon esa sonrisa amigo?)

Introducción rápida a Git y GitHub

Según Wikipedia,

Git es un sistema de control de versiones distribuido diseñado para rastrear cambios en un proyecto (código) en el desarrollo de software. Está destinado a reforzar la coordinación, la colaboración, la velocidad y la eficiencia entre los desarrolladores.

GitHub, por otro lado, es un servicio de alojamiento web para el control de versiones mediante Git. Ofrece todo el control de versiones distribuidas y la funcionalidad de administración de código fuente de Git, además de agregar más funciones para el código de computadora.

Cómo instalar Git en Windows

Descargue e instale la última versión de Git para Windows Installer aquí.

Cómo instalar Git en Linux

Estos son los comandos basados ​​en su distribución de Linux:

Debian o Ubuntu

sudo apt-get update sudo apt-get install git

Fedora

sudo dnf install git

CentOS

sudo yum install git

Arch Linux

sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

Cómo instalar Git en una Mac

Descargue e instale el último instalador de Git para Mac aquí.

O puede escribir este comando:

brew install git

Ahora que tenemos Git instalado, pasemos al tutorial.

Introducción a Git Clone

Git te permite administrar y versionar tu (s) proyecto (s) en un "repositorio". Este repositorio se almacena en un servicio de alojamiento web para el control de versiones, como GitHub.

Luego puede clonar este repositorio en su máquina local y tener todos los archivos y ramas localmente (pronto explicaré más sobre las ramas).

Por ejemplo, puede clonar el repositorio de freeCodeCamp con SSH así:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Introducción a las ramas de Git

Cuando trabaje en un proyecto, probablemente tendrá diferentes características. Y varios colaboradores estarán trabajando en este proyecto y sus características.

Las ramas le permiten crear un "patio de recreo" con los mismos archivos en la masterrama. Puede utilizar esta rama para crear funciones independientes, probar nuevas funciones, realizar cambios importantes, crear correcciones, escribir documentos o probar ideas sin romper o afectar el código de producción. Cuando haya terminado, fusiona la rama en la masterrama de producción .

La ramificación es un concepto central en Git que también se usa en GitHub para administrar flujos de trabajo de diferentes versiones de un proyecto. La masterrama es siempre la rama predeterminada en un repositorio que a menudo se considera "código de producción e implementación". Se pueden crear nuevas ramas como passwordless-autho refactor-signup-uxdesde la masterrama.

Cómo clonar ramas de Git

Si bien puede clonar repositorios con el git clonecomando, tenga en cuenta que este clona la rama y el control remoto HEAD. Esto suele ser masterde forma predeterminada e incluye todas las demás ramas del repositorio.

Entonces, cuando clona un repositorio, clona la mastery todas las demás ramas. Esto significa que tendrá que pagar otra sucursal usted mismo.

Digamos que su tarea en un proyecto es trabajar en una función para agregar autenticación sin contraseña a un panel de usuario. Y esta característica está en la passwordless-authrama.

Realmente no necesita la masterrama ya que su "rama de características" se fusionará masterposteriormente. Entonces, ¿cómo clona esta passwordless-authrama sin obtener todas las demás ramas con "un montón de archivos que no necesita"?

Creé este repositorio de muestra para explicar esto. Este repositorio contiene un blog simple creado con Nextjs y tiene cuatro ramas ficticias:

  • Maestro
  • dev
  • puesta en escena
  • autenticación sin contraseña

En Nextjs, cualquier archivo dentro de la carpeta pages/apise asigna a la /api/*ruta y se tratará como un punto final de API en lugar de un page. En nuestro repositorio, he creado diferentes API ficticias en este directorio para hacer que cada rama sea diferente.

La masterrama contiene el archivo páginas / API / hello.js mientras que passwordless-authcontiene el archivo páginas / api / auth.js . Cada archivo solo devuelve una respuesta de texto ficticio. Vea masterla respuesta de la API de saludo aquí (¿con un mensaje especial para usted?).

Clonemos el repositorio:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

Esto nos da acceso a todas las ramas de este repositorio y puede alternar fácilmente entre cada una para ver cada versión y sus archivos.

git branch -a

¿Se pregunta de dónde vienen las ramas remotas / origen / .. ?

Cuando clonas un repositorio, extraes datos de un repositorio en Internet o de un servidor interno conocido como remoto . El origen de la palabra es un alias creado por su Git para reemplazar la URL remota (puede cambiar o especificar otro alias si lo desea).

Estas ramas remotas / origin / .. lo dirigen al repositorio de origen que clonó desde Internet para que aún pueda realizar pull / push desde el origen.

Entonces, cuando clona masteren su máquina, remotes/origin/masteres la masterrama original en Internet y masterestá en su máquina local. Entonces tirarás / empujarás desde y hacia el remotes/origin/master.

En resumen, Remote es la URL que lo dirige al repositorio en Internet, mientras que Origin es un alias para esta URL remota.

Cómo clonar una rama específica

Ahora clonemos una rama específica de nuestro repositorio de demostración. Hay dos formas de clonar una rama específica. Tu también puedes:

  • Clone el repositorio, recupere todas las ramas y realice el pago en una rama específica de inmediato.
  • Clone el repositorio y obtenga solo una rama.

opcion uno

git clone --branch  

o

git clone -b  

Con esto, obtiene todas las ramas en el repositorio, realiza el pago a la que especificó y la rama específica se convierte en la rama local configurada para git pushy git pull. Pero aún buscaste todos los archivos de cada rama. Puede que esto no sea lo que quieres, ¿verdad? ?

Probémoslo:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Esto se configura automáticamente passwordless-authcomo la rama local, pero aún rastrea otras ramas.

Opción dos

git clone --branch  --single-branch 

o

git clone -b  --single-branch 

Esto realiza la misma acción que la opción uno, excepto que la --single-branchopción se introdujo en Git versión 1.7.10 y posteriores. Le permite obtener solo archivos de la rama especificada sin buscar otras ramas.

Probémoslo:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Esto se configura automáticamente passwordless-authcomo la rama local y solo rastrea esta rama.

Si ejecuta cd pages/api, encontrará el auth.jsarchivo en la passwordless-authrama como se esperaba de la configuración anterior.

Conclusión

Es posible que se esté quedando sin Internet o sin espacio de almacenamiento, pero necesita trabajar en una tarea en una rama específica. O es posible que desee clonar una rama específica con archivos limitados por varias razones. Afortunadamente, Git le brinda la flexibilidad para hacer esto. Flexiona tus músculos y pruébalo, hay mucho más "Git" para aprender.

Uno a la vez, ¿no? ✌?