
En esta entrada vamos a aprender cómo usar git sin sufrir, y para ello vamos a cubrir estos 5 pasos simples y rápidos para comenzar a usar Git lo antes posible.
1- Haremos fork
de un repositorio de Github existente
2- Vamos a clonar
tu nuevo repositorio a tu computadora
3- Crearemos un espacio donde podamos hacer cambios de forma aislada
4- Guardaremos esos cambios de forma local
5- Sincronizaremos esos cambios con nuestro repositorio remoto. Al pasar por cada uno de estos pasos vas a familiarizarte con el flujo de trabajo más común en git. También te familiarizarás con los comandos básicos en la línea de comandos de tu computadora. A pesar de que no explicaremos a detalle la naturaleza de git, si vamos a ir directo a la práctica para que git se convierta hoy mismo en una más de tus herramientas de desarrollo y subas al siguiente nivel
.
¿Qué son los repositorios remotos?
Un repositorio remoto es simplemente el grupo de archivos que componen un proyecto web o de software en general, incluso puede ser un proyecto de texto únicamente, pues git nos sirve para mantener el historial de cambios de un grupo de archivos de texto (principalmente) haciendo que sea posible usarlo para actualizar incluso un grupo de entradas de texto (un blog por ejemplo).
#1 Haciendo Fork de un repositorio remoto
Vamos a ir a buscar un repositorio remoto, en este caso una página web simple que contiene citas para motivarnos a aprender a programar.
Verás esta pantalla =>
Esto es la página principal en Github para el proyecto. Asegurate de que tu cuenta de Github esté abierta para poder hacer clic en el boton de
fork
en la esquina superior derecha de la página:
Veras una pantalla de carga mientras Github crea tu nuevo repositorio a partir del fork
dentro de la cuenta que hayas seleccionado. Una vez que termine verás la misma pantalla inicial con la diferencia de que ahora pertenece a tu cuenta. !Este proyecto ahora es tuyo!
Eso es todo, hacer fork
de un repositorio remoto es muy fácil ¿no crees?
#2 Clonando tu repositorio
Para clonar el repositorio en tu computadora y tener el proyecto de forma local para poder hacer cambios, necesitas dar clic al botón verde gigante que dice code
, Github te ofrecerá varias formas de clonar el repositorio, en esta ocación seleccionaremos HTTPS
, la intención es obtener el link que nos permitirá ejecutar el comando de clonación en nuestra terminal.
Una vez en nuestra terminal (linea de comandos) o lo que llamamos
command prompt
escribimos el siguiente comando de git (este es en realidad nuestro primer comando de git
)
git clone
Una vez que escribimos el comando vamos a pegar el link que hemos copiado de nuestro recién forkeado
repositorio de Github.
git clone https://github.com/<tu-username>/blog_frases_dev.git
Toma en cuenta que git debe estar instalado en tu computadora, específicamente en tu linea de comandos, es probable que tu sistema operativo ya lo incluya pero en caso de que no aquí te dejo un link para que puedas instalarlo, puedes comprobar si ya lo tienes con el comando
git --version
Ahora vamos a ver que significa todo ese comando git clone <link>
:
git
Este es el nombre de la herramienta de tu linea de comandos que queremos invocar. Toda interacción que tengas con git en la linea de comandos comenzará con el comandogit
y le seguirá la acción que quieres ejecutar.clone
Es el nombre de la acción que quieres ejecutar.clone
le dice agit
que copie un repositorio especifico a tu computadora.Link
Este es la URL completa al repositorio que que quieres clonar. Si observamos el link,https://github.com/<tu-username>/blog_frases_dev.git
es el servicio en la nube donde nuestro repositorio está almacenado.<tu-username>
es el propietario del repositorio yblog_frases_dev.git
es el nombre del repositorio.
Presionamos enter/return
para ejecutar el comando. Git te dará feedback sobre el progreso de la copia.
Cloning into `reponame` ... remote: Enumerating objects: 7, done. remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 7 Receiving objects: 100% (7/7), done.
Estos detalles son importantes, la primera linea indica que se está copiando en una carpeta nueva llamada reponame
.
Si navegamos hacia dentro de esa carpeta con el comando.
cd reponame
E inmediatamente listamos los archivos que esta contiene.
ls -l
Verás una lista de archivos parecida a esto
-rw-r--r-- 1 chrisbelanger staff 1070 29 May 11:25 LICENSE -rw-r--r-- 1 chrisbelanger staff 370 29 May 11:25 README.md
Hay 3 archivos en el repositorio (ahora local) index.html
, style.css
y README.md
. ¡Lo lograste! has copiado tu repositorio remoto a tu computadora desde la linea de comandos, ahora ya podemos modificar nuestros archivos.
#3 Creando una Branch
Las branches
o ramas son "conceptualmente" copias del contenido original del repositorio. Una branch
te permite trabajar sin afectar el contenido original del repositorio hasta que estás lista para hacer merge
(mezclar o unir) tu trabajo (tus modificaciones) con el contenido original.
Si alguna vez has copiado un documento importante antes de comenzar a editarlo, este concepto de branching
(crear un branch) es exactamente lo mismo.
Ahora en la linea de comandos vamos a ejecutar el comando que crea nuestra branch
git branch mis-cambios
Analicemos cómo funciona este comando:
git
De nuevo es el mismo nombre de nuestra herramientabranch
Es el nombre de la acción que quieres quegit
ejecute.mis-cambios
Es el nombre que has decidido asignarle a tubranch
. El nombre que le das es importante, pero generalmente querrás darle un nombre descriptivo, justo como lo harías si estuvieras creando carpetas en tu escritorio.
Puedes ver todas las branches
que existen localmente en tu proyecto ejecutando el mismo comando pero sin agregar un nombre, de esta forma git sabe que no quieres crear una nueva, si no, ver las que existen.
git branch
Git responderá a este comando con la siguiente información.
*main mis-cambios
main
es la copia original del repositorio, mientras que mis-cambios
es la branch que acabas de crear. El asterisco *
indica cual es la branch en la que actualmente estás trabajando. Aún te encuentras en main
, pero nosotros queremos trabajar en mis-cambios
para no afectar main
(aún). Así que vamos a cambiarnos a la branch correcta:
git checkout mis-cambios
Ahora estamos indicandole a git
que la acción que queremos ejecutar es checkout
, esta acción nos cambiará de branch. Es importante que el nombre de la branch que especificamos después de checkout
exista, pero como tu sabes que ya la has creado previamente nuestro comando funciona correctamente.
Switched to branch 'mis-cambios'
Si eres un poco paranoico (como la mayoría de los developers) querras ejecutar de nuevo el comando que te indica en que branch te encuentras una vez más.
git branch
Lo cual nos mostraría que exitosamente cambiamos de espacio de trabajo (branch)
main *mis-cambios
De nuevo, el asterisco *
indica la branch en la que te encuentras actualmente, esto nos asegura que a partir de ahora los cambios que hagamos al contenido no afectará a la copia original (main
).
Es momento de agregar cambios, vamos a modificar el archivo README.md
#4 Haciendo cambios y colocándolos en staging
README.md
es simplemente un archivo de texto. Abrelo en tu editor de código (o texto)
# Frases célebres de programadores ...
Son frases sobre desarrollo de software, ¿cierto? 🥸 Vamos a agregar una nueva frase a nuestra lista de frases, agrega la siguiente linea hasta el final del archivo:
Para poder entender recursividad, primero hay que entender recursividad. --Blissmo
Guarda los cambios del documento. Git es muy inteligente, pero al mismo tiempo, git no asume nada, git te va a permitir indicarle si estos cambios deben afectar el repositorio. Así que ahora git está esperando que le digas que haga un registro de estos cambios en el historial de cambios del proyecto.
git add README.md
El comando git add
le dice a git que agregue o que haga stage
de los cambios que acabas de agregar a README.md
al historial de cambios. En este caso sólo tenemos un cambio en un archivo, pero en la práctica regularmente tendrás muchos cambios en muchos archivos.
¡Muy bien! ahora que has agregado los cambios ocurridos en este archivos es momento de "sellar/comprometer/perpetrar/marcar" estos cambios con el comando commit
Haciendo commit (committing)
¿Por qué es necesario un commit, si ya le dijimos a git que agregue (add
) los cambios?, bueno, git está hecho para proyectos en continuo cambio y sabe bien que mientras quieres ir guardando progreso de tu trabajo, también quieres tener la libertad de cambiar de opinión o de agregar más cambios conforme tienes nuevas ideas en este o más archivos, es por ello que git espera a que estes completamente lista para decir "ok este cambio está completo y quiero FORMALMENTE hacer registro de mis cambios en mi copia local del repositorio", es entonces momento de hacer commit
.
git commit -m "Agregando una nueva frase"
Este comando le dice a git que grabe formalmente el grupo de cambios, en este caso, el único cambio, la nueva frase. Git responderá con información similar a esta:
[mis-cambios f8f8854] Agregando una nueva frase 1 file changed, 1 insertion(+)
Puede que la mucha información que git nos da en este paso sea algo confusa, pero veamos que nos está mostrando:
mis-cambios
Es la branch en la cual has registrado formalmente los cambiosf8f8854
Es un identificador único para los cambios en tu commit, también llamadocommit hash
. Este identificador se usa para referenciar este momento en el tiempo en el futuro, esta "versión" de tu proyecto.Agregando una nueva frase
Es el comentario que has agregado para acompañar tu commit.1 file changed, 1 insertion(+)
Esto te provee algo de contexto sobre lo que ha cambiado en el proyecto con este commit, un archivo, con una linea fue agregada.
¡Genial! formalmente has guardado estos cambios en el historial de tu proyecto localmente, recuerda que has hecho este cambio específicamente en la branch mis-cambios
es momento de sincronizar tus cambios locales con el repositorio remoto.
5 Haciendo "pushing" de tus cambios
Todas las acciones que hemos hecho hasta ahora han sido desde la perspectiva de tu proyecto en tu computadora (localmente) es por ello que el concepto de pushing
viene bien, pues es hora de respaldar todo lo que hemos hecho en nuestro repositorio en la nube.
git push --set-upstream origin mis-cambios
Seguro, es un comando muy largo, pero no te preocupes demasiado, vamos a desmenuzar lo que este comando hace:
push
Le dice agit
que coloque los cambios que tienes localmente en tu servidor (repositorio remoto)--set-upstream
Le dice agit
que construya un link de rastreo para esta branch entre tu repositorio local y el remoto.origin
Esto es una convención, es decir que es una forma predefinida para referirse a tu link remoto (el que copiaste al principio) en vez de tener que escribirlo de nuevo 🥳mis-cambios
Esta es la branch a la que quieres subir tus cambios (la misma en la que hemos trabajado)
Git responderá con un pipeline
de datos, entre ellos una barra de progreso que podrás observar, que indica el progreso de subida. Podrás notar también que git es inmensamente rápido a la hora de subir al repositorio remoto.
Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 8 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 389 bytes | 389.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (1/1), completed with 1 local object. remote: remote: Create a pull request for 'my-joke' on GitHub by visiting: remote: https://github.com/<your-username>/programmer-jokes/pull/new/my-joke remote: To https://github.com/<your-username>/programmer-jokes.git * [new branch] my-joke -> my-joke Branch 'my-joke' set up to track remote branch 'my-joke' from 'origin'.
Es muy probable que en este punto, git te pida ingresar tu usuario y contraseña, escríbelos, presiona enter y continua.
¡Git ha hecho push
exitosamente de tus cambios al repositorio remoto!
¡Has aprendido mucho! ahora eres capaz de trabajar pensando en versiones de tu trabajo, respaldando de forma local y remota tus cambios, es más ahora puedes entender este meme:
Es suficiente por ahora, te recomiendo repitas lo que has aprendido hoy de memoria con una branch nueva (sólo recuerda que la branch de donde partas será la branch que copiarás).
En la siguiente entrada, te voy a enseñar también de forma sencilla cómo hacer un pull-request
que es la pieza faltante aquí para lograr llevar tus cambios que se encuentran en mis-cambios
hacia main
y de esta forma actualizar el contenido original. Pero por ahora ¡Felicidades! 🎉 ¿No fue tan difícil vdd?
Te mando un abrazo. Bliss.

Descubre las nuevas características de Next 13.4 que transformarán tu experiencia de desarrollo
Checa este otro Post
