cover

Aprende a usar Git, sin dolor

author photo

Héctorbliss

@hectorbliss


robot logo saying hello

No te quedes atrás: Actualízate

Suscríbete para recibir información sobre nuevos frameworks, updates, eventos, tips, hacks y más.

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.

Link al repo

Verás esta pantalla => repo 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: fork button

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. enter image description here 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 comando git y le seguirá la acción que quieres ejecutar.
  • clone Es el nombre de la acción que quieres ejecutar. clone le dice a git 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 y blog_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 herramienta
  • branch Es el nombre de la acción que quieres que git ejecute.
  • mis-cambios Es el nombre que has decidido asignarle a tu branch. 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 cambios
  • f8f8854 Es un identificador único para los cambios en tu commit, también llamado commit 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 a git que coloque los cambios que tienes localmente en tu servidor (repositorio remoto)
  • --set-upstream Le dice a git 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:

enter image description here

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.


¿Quieres mantenerte al día sobre los próximos cursos y eventos?

Suscríbete a nuestro newsletter

Jamás te enviaremos spam, nunca compartiremos tus datos y puedes cancelar tu suscripción en cualquier momento 😉

robot logo saying hello
facebook icontwitter iconlinkedin iconinstagram iconyoutube icon

© 2016 - 2023 Fixtergeek