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 master
rama. 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 master
rama 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 master
rama 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-auth
o refactor-signup-ux
desde la master
rama.

Cómo clonar ramas de Git
Si bien puede clonar repositorios con el git clone
comando, tenga en cuenta que este clona la rama y el control remoto HEAD
. Esto suele ser master
de forma predeterminada e incluye todas las demás ramas del repositorio.
Entonces, cuando clona un repositorio, clona la master
y 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-auth
rama.
Realmente no necesita la master
rama ya que su "rama de características" se fusionará master
posteriormente. Entonces, ¿cómo clona esta passwordless-auth
rama 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/api
se 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 master
rama contiene el archivo páginas / API / hello.js mientras que passwordless-auth
contiene el archivo páginas / api / auth.js . Cada archivo solo devuelve una respuesta de texto ficticio. Vea master
la 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 master
en su máquina, remotes/origin/master
es la master
rama original en Internet y master
está 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 push
y 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-auth
como 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-branch
opció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-auth
como la rama local y solo rastrea esta rama.


Si ejecuta cd pages/api
, encontrará el auth.js
archivo en la passwordless-auth
rama 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? ✌?