Presentándose y Entendiendo GGG (GuayaHack, Git, GitLab)#
Hola! Ésta es el primer reto con la que todo newbie deberá comenzar. La programación no es diferente a muchas otras áreas en las cuales hay herramientas básicas cuyo uso es imprescindible. El carpintero usa sus martillos y el esculptor sus cinceles, el programador moderno, en cambio su entorno de desarrollo y herramientas para gestión de código y proyectos.
Ya que GuayaHack es un espacio sin ánimo de lucro, creada y mantenida por voluntarios, necesitamos herramientas y procesos que nos ayuden a funcionar de manera eficiente, mientras que al mismo tiempo compartimos y ayudamos a todos los miembros a adquirir nuevas habilidades y compartir sus conocimientos.
En GuayaHack usamos muchas herramientas, como pueden ver en Infraestructura GuayaHack, pero las dos herramientas más importantes para todo novato son Git y GitLab.
Introducción#
Nuestras Reglas#
Aunque somos un proyecto joven hemos crecido considerablemente, ésto es una ventaja pero tambien requiere que pongamos atención a la cultura que queremos propiciar. Para ésto tenemos nuestro Memorial y nuestras Reglas (Big Endian).
Por favor échales un vistazo. Además, ya que GuayaHack es un espacio de todos, puedes hacernos saber a los moderadores si encontraste errores, inconsitencias o deseas cambiar algo a fin de mejorarlas.
Gestión de código con Git#
Git es una herramienta de código abierto gratuita que los programadores utilizamos para organizar nuestro código, sobretodo cuanto estamos en proyectos con más personas. Así como todo bebé aprende a no interrumpir para poder comunicarse efectivamente, el programador neofito usualmente debería aprender a usar git para poder contribuir cambios y nuevas funciones de forma ordenada a codigos fuente y proyectos que no le pertenecen.
No permitas que la impaciencia te gane, pero tu uso de Git y GitLab nos permite a los voluntarios ayudarte de forma efectiva y eficiente al igual que mantener los cientos de documentos y programas pequeños y grandes creados por la comunidad sin caer en la locura :)
El flujo de trabajo con Git es universal y es como sigue:
En la imagen anterior puedes ver tanto los pasos como los comandos asociados con el proceso de gestionar código fuente.
Instalación#
Git es una herramienta muy poderosa, por eso se han escrito libros y grabado videos incontables sobre su instalación y uso. Nosotros no necesitamos saber todo sobre Git, por ahora es suficiente instalarlo y poder utilizar las funciones básicas mostradas en el diagrama anterior. Puedes aprender como instalar Git en tu sistema en El Libro de Git: Instalación
Gestión de Código con GitLab#
Como en muchas profesiones, existen dos habilidades fundamentales que todo programador debe utilizar y mejorar a lo largo de su carrera: aprender a aprender y aprender a organizarse.
Éste proceso nunca termina, pues jamás aprendemos todo lo que hay por aprender y nunca nos organizamos de forma que nunca hay que volver a organizar o gestionar nuestro código, proyectos y demás.
Por éste motivo, las personas que trabajan con tecnología son amantes de herramientas que les permitan organizarse mejor y trabajar de forma más eficiente.
Nosotros en GuayaHack utilizamos gitlab, la plataforma de una empresa Estadounidense que, al igual que otras como GitHub o BitBucket, es utilizada por millones de programadores para gestionar su código y sus proyectos.
Ya que GuayaHack hace parte de el programa de GitLab para Proyectos de código abierto[1], ellos nos han donado las licencias que utilizarán para trabajar.
Propósito#
El propósito de éste reto es que te diviertas y aprendás a usar las herramientas básicas que utilizaremos para comunicarnos y organizarnos entre nosotros: Discord, Git, GitLab y el editor que elijas (VSCode, Sublime, VIM, NeoVim, EMACS, Nano y demás). En nuestra WIKI puedes encontrar dos artículos sobre el uso de VSCode (Guía rápida para usar Visual Studio Code) y el uso de VSCode con Git(Guía Paso a Paso: Cómo Usar GIT en Visual Studio Code)
Carpintero a tu zapato, pero después de saber usar las herramientas :)
Objetivo#
Tú objetivo será 1
crear tu espacio en GuayaHack, crear tu index.md
de presentación similar a @jdsalaro y 2
agregar tu nombre a la lista de miembros en Comunidad enlazándolo con 1
.
Información adicional#
Registrándote en GitLab#
Pasos#
Solicitando acceso a /guayahack/members
#
Puedes solicitar acceso al proyecto de /guayahack/main
a través del grupo /guayahack/members
: https://guayahack.co/reto/on-boarding-git-gitlab/
Verificando que tienes acceso a /guayahack/members
#
Una vez que solicites acceso los moderadores recibirán una notificación y una vez la aprueben deberías poder ver tu nombre en la lista de miembros del grupo /guayahack/members
:
Clonando main @ GuayaHack#
git clone git@gitlab.com:guayahack/main.git
Creando tu rama o branch#
git checkout -b <REEMPLAZAR>
Realizando cambios y haciendo push#
# Agrega todos los archivos del directorio actual al stage
git add .
# Agrega la descripción del commit al stage
git commit -m "<REEMPLAZAR>"
# Envía los datos al "origin" (la rama del repositorio REMOTO, aka Gitlab)
git push
Verifica en el projecto de /guayahack/main/
que puedes ver tu nueva rama creada.
Creando un Merge, también llamado Pull, Request#
Ahora deberás crear una solicitud de incorporación de cambios, también llamada Merge Request, basada en esa rama que creaste.
Recuerda, de ahora en adelante, que una Merge Request siempre está basada en la versión más actualizada de una rama o branch; puedes leer más sobre ésto en Git para principiantes: estrategias de branching.
Verificando Cambios#
Ahora, verifica que todos tus cambios se ven como lo planeaste:
Mira que el texto, las imágenes, todo está correcto.
Aprobación e incorporación de cambios#
Una vez tu hayas asignado a un moderador cómo reviewer o revisor de tu Merge Request, éste deberá aprobarla para que tu puedas hacerle “Merge” a tus cambios, es decir los puedas incorporar a master
la rama principal del proyecto.
Problemas Comunes#
Problema#
En caso de que nos arroje un error de que no encuentra el origen, debemos agregar
# Envía los datos al "origin"/<REEMPLAZAR>
git push --set-upstream-to=origin/<REEMPLAZAR>
Pistas#
En caso de necesitar un poquito de inspiración, puedes leer éste tutorial escrito por uno de nuestros miembros: Como Resolví /reto/on-boarding-git-gitlab