Mini curso básico para aprender a usar GitHub.
- Este curso también está disponible en otros idiomas, consúltalo aquí
- This course is also available in other languages, check it out here
Estamos encantados de darles la bienvenida a este emocionante curso, donde aprenderán los fundamentos de GitHub y cómo aprovechar al máximo esta increíble plataforma de desarrollo colaborativo. GitHub se ha convertido en la herramienta de elección por millones de desarrolladores en todo el mundo, y este curso les brindará las habilidades necesarias para comenzar a utilizarlo de manera efectiva.
Durante este curso, exploraremos los conceptos básicos de GitHub, incluyendo cómo configurar su cuenta, crear y clonar repositorios, realizar cambios, colaborar con otros desarrolladores y mucho más. También les proporcionaremos consejos y buenas prácticas para garantizar una gestión eficiente de su flujo de trabajo.
Nuestro objetivo es ayudarles a familiarizarse con GitHub y demostrarles cómo puede mejorar su productividad, facilitar la colaboración en equipo y llevar su desarrollo de software al siguiente nivel. No importa si son principiantes en el mundo de la programación o si ya tienen experiencia con control de versiones, este curso está diseñado para adaptarse a todos los niveles de conocimiento.
Recuerden que el aprendizaje es un proceso continuo, y GitHub es una herramienta en constante evolución. Así que, estén abiertos a explorar, hacer preguntas y compartir ideas. Juntos, crearemos un entorno de aprendizaje enriquecedor y estimulante.
Estamos emocionados de acompañarles en esta aventura y esperamos que aprovechen al máximo este curso.
¡Buena suerte y feliz codificación!
El equipo de GitHub 101
¿Qué es GitHub?
GitHub es un servicio basado en la nube que aloja un sistema de control de versiones (VCS) llamado Git, en otras palabras es una plataforma de colaboración que utiliza Git para el control de versiones, es decir, se utiliza para compartir y contribuir al software de código abierto.
📺 Vídeo: ¿Qué es GitHub?
¿Qué es un repositorio?
Un repositorio es un proyecto que contiene todos los archivos del mismo, tales como imagenes, carpetas, entre otros tipos de archivos. Así como el historial de revisiones de cada uno de ellos. Aqui puedes debatir y administrar el trabajo de tu proyecto dentro.
📺 Video: ¿Qué es un repositorio?
¿Qué es una rama?
En GitHub, una rama (branch en inglés) es una versión paralela de un repositorio que permite a los desarrolladores trabajar en distintos aspectos de un proyecto de forma aislada. Cuando se crea una rama, se copian todos los archivos y el historial de cambios del repositorio principal, y a partir de ahí se pueden realizar modificaciones sin afectar la rama principal (también conocida como rama "master" o main
).
Las ramas son útiles para varios propósitos, como desarrollar nuevas características, solucionar problemas, experimentar con cambios importantes o colaborar con otros desarrolladores. Cada rama puede tener su propio conjunto de cambios y contribuciones independientes del resto del proyecto. Esto permite un flujo de trabajo colaborativo y paralelo, ya que cada desarrollador puede trabajar en su propia rama sin interferir con el trabajo de los demás.
📺 Vídeo: ¿Qué son las ramas?
¿Qué es un commit?:
Una commit es un conjunto de cambios en los archivos y carpetas del proyecto.
📺 Vídeo: ¿Qué es un commit?
¿Qué es una solicitud de extracción (pull request)?
Un pull request es una petición para integrar nuestras propuestas o cambios de código a un proyecto.
Un pull request es una petición que el propietario de un fork de un repositorio hace al propietario del repositorio original para que este último incorpore los commits que están en el fork. Estos muestran los cambios en su rama a otras personas y les permite aceptar, rechazar o sugerir cambios adicionales a su rama.
📺 Vídeo: ¿Qué es y cómo hacer un Pull Request?
¿Qué es un merge?:
Un merge o fusión en español se refiere al proceso de combinar cambios de una rama (branch) a otra en un repositorio.
El "merge" combina los cambios de una rama con otra mediante la creación de un nuevo commit que refleje esos cambios en la rama de destino. GitHub utiliza un algoritmo de fusión llamado "merge commit" para combinar las diferencias entre las dos ramas. Este "merge commit" registra el historial de cambios y permite mantener un registro de los cambios realizados en cada rama.
📺 Vídeo: ¿Cómo hacer un merge?
¿Qué es un archivo README?
Un archivo README en GitHub es una práctica común en la mayoría de los repositorios de código. README es una abreviatura de "read me" que significa "léeme" en inglés. Este archivo tiene la extensión ".md", lo que indica que está escrito en formato Markdown, un lenguaje de marcado ligero para formatear texto.
El README se utiliza para proporcionar información básica y relevante sobre el proyecto alojado en el repositorio de GitHub. Su objetivo es brindar a los visitantes y colaboradores una visión general del proyecto, instrucciones de instalación, documentación, ejemplos de uso y cualquier otra información que pueda ser útil.
El contenido de un archivo README puede variar según el proyecto, pero generalmente incluye los siguientes elementos:
- Título y descripción: Un breve resumen del proyecto que lo describe de manera concisa.
- Requisitos: Los requisitos previos necesarios para utilizar o contribuir al proyecto, como versiones de software o bibliotecas adicionales.
- Instalación: Instrucciones paso a paso sobre cómo instalar y configurar el proyecto.
- Uso: Cómo utilizar el proyecto, incluidos ejemplos de código o comandos.
- Contribución: Directrices para que otros contribuyan al proyecto, como pautas de estilo de código, estructura de directorios y procesos de solicitud de extracción.
- Documentación adicional: Enlaces a documentación adicional, como guías detalladas, tutoriales o ejemplos.
- Licencia: Información sobre la licencia del proyecto y los derechos de autor.
¿Qué es un perfil README?
Un perfil README es practicamente una introducción de quien eres, es decir, una mini biografia que se muestra en nuestro perfil de GitHub. Aquí podemos compartir información relevante hacia la comunidad en GitHub.com. Lo interesante es que el portal muestra susodicho archivo en la parte superior de nuestra página de perfil. Si quieres saber más u obtener mayor información, consulta "Administrar el README de tu perfil".
📺 Vídeo: CREA tu Github README Profile paso a paso
-
Hagamos clic en Iniciar curso (se recomienda abrir el enlace en una nueva pestaña)
-
Una vez en la pestaña, sigamos las siguientes instrucciones para crear un nuevo repositorio.
- El dueño de la cuenta o propietario de la misma, debe de indicar si usará su cuenta personal o una organización para alojar el repositorio.
- Recomendamos crear un repositorio público; los repositorios privados utilizarán minutos de GitHub Actions.
- Asigne un nombre al repositorio que sea fácil de reconocer y recordar.
-
Después de crear susodicho, deberemos de esperar unos 20 segundos aproximadamente para poder actualizar la página y poder ver nuestro nuevo repositorio.
Una vez dentro del repositorio podemos observar que no contamos con ningún archivo, pero el portal nos brinda algunas recomendaciones tales como la de añadir(cargar) un archivo o crearlo. Así mismo nos señala que podemos crear/incluir un README, LICENSE o un .gitignore.
Para este ejercicio daremos clic en la opción de README, mismo que nos redirigirá a la vista que nos mostrará que se creo el archivo con el mismo nombre en formato .md en nuestra rama main
Aquí podemos añadir la información que deseemos, tal y como se mencionó con anterioridad, cabe destacar que si no gustan editarlo de momento lo podemos hacer más adelante. Por ahora demos clic en el botón azul Commit changes
, situado en el lado superior derecho. Al hacerlo se desplegará una ventana que solicitará que añadamos un título y una descripción, misma que es opcional. Cuando hayamos escrito susodichos demos clic en el boton correspondiente.
¡Listo!, con esto habremos realizado nuestro primer commit, el cual se puede interpretar como si hubiéramos creado un archivo nuevo y almacenado en nuestro repositorio.
Continuemos con el siguiente paso.
Nota: si creó un repositorio seleccionando el checkbox de "Añadir un archivo README" (Add a README file), el paso anterior no se realizaria puesto que el archivo README ya estaría en nuestro proyecto, por ende vayamos al paso número dos.
La creación de una rama nos permite editar los proyecto sin cambiar la rama main
(principal).
-
En la página donde nos quedamos previamente veremos del lado izquierdo y debajo del nombre de nuestro repositorio, la pestaña < > Código (Code), ademas de las otras opciones de menú de encabezado.
-
Esta nos mostrará un menú desplegable, la cual al hacer clic solo contendrá la rama
main
- En el campo de texto nos indicá que podemos buscar o crear una rama, aquí ingresemos un nombre para realizar la segunda opción, llamemos a nuestra rama:
dev
. Al hacer esto, de manera automatica, cambiará el contenido y aparecerá la opción de crear la rama con el nombredev
proveniente demain
.
-
Hacemos clic en susodicha alternativa Create branch: dev from main (Crear rama: dev de main) para concebir la rama.
-
La rama cambiará automáticamente a la que se acaba de crear. El menú desplegable de la rama
main
reflejará su nueva opción o rama y mostrará por ende el nombre de la misma, que en nuestro caso nombramos:dev
.
¡Listo! - Has creado una rama 🎉
Para este paso lo primero que deberemos de realizar será el crear/agregar un nuevo archivo, debido a que nos encontramos en la nueva rama que acabamos de generar, por ello sigamos los siguientes pasos:
-
En la pestaña < > Código (Code), en el menú de encabezado de nuestro repositorio, asegúremonos de encontrarnos situados en la rama, la cual en este ejemplo nombramos:
dev
. -
Acto seguido elijamos el menú desplegable "Add file (Agregar archivo)" y seleccionemos (demos clic) en la opción "Create new file (Crear nuevo archivo)".
- En la nueva vista, aparecerá un campo vacío con una leyenda en sombreado "Name your file...", el cual nos indica que le brindemos un nombre, llamemoslo
LICENSE.md
.
Nota: .md
es una extensión de archivo que crea un archivo Markdown. Para obtener mayor información sobre Markdown visite Sintaxis básica de escritura y formato en la documentación de GitHub o realizando el curso de habilidades Comunicación mediante Markdown.
- A continuación y de forma "mágica" se mostrará la leyenda "Choose a license template", misma que podemos seleccionar o, en el área Editar, podemos pegar el siguiente contenido:
Derechos de autor.
Por la presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión , publicar, distribuir, otorgar sublicencias y/o vender copias del Software, y permitir que las personas a las que se les proporcione el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN. EN NINGÚN CASO LOS AUTORES O LOS TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE CUALQUIER OTRO TIPO, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.
- Posteriormente hagamos clic en el botón Commit changes para que al igual que en el paso anterior donde creamos el archivo
README
nos aparezca una ventana emergente que nos solicite ingresar un breve mensaje de confirmación que describa los cambios que realizamos. Recordemos que este mensaje ayuda a otros a saber qué estamos añadiendo en nuestro commit. Como nos podemos dar cuenta, GitHub ofrece un mensaje predeterminado simple, pero en esta ocasión vamos a cambiarlo un poco para practicar.
Primero, en el título escribamos: "Se añade archivo LICENSE.md". En la descripción extendida ingresemos: Se crea archivo de Licencia en formato markdown que expresa los derechos de autor.
- Por último confirmemos los cambios dando clic en Commit changes
¡Excelente! - Ya estas dominando el realizar commits, ¿sencillo no?
Ahora que se realizó un cambio en el proyecto y se añadio, es hora de compartir el cambio propuesto a través de una solicitud de extracción o como se conoce normalmente: PR (Pull Request), el cúal se definió en la Introducción.
Una vez realizado lo anterior, es probable que hayan notado un pequeño mensaje que muestra el envío reciente a la rama y proporciona un botón que dice Contribute (Contribuir). Al desplegarlo, podremos observar dos opciones: Compare (Comparar) y Open pull request (Abrirl solicitud de extracción).
Para realizar el PR hagamos clic en Open pull request, al realizar esto se nos mostrará una vista como la siguiente:
Si nos encontramos en esta pantalla, vayamos directamente al paso número 6. Caso contrario que no hayamos dado clic en susodicha opción, deberemos de realizar los siguientes pasos:
- Dar clic en la pestaña Pull requests en el menú de encabezado del repositorio.
- Dar clic en New pull request (Nueva solicitud de extracción).
- En la nueva pantalla se mostrarán dos menús desplegables: base:main y compare:main, asegúresemos de que la primera, la base seleccionada siempre sea main, porque es la "rama principal y original".
- Del segundo menú desplegable compare:, seleccionemos nuestra rama
dev
.
- Demos clic en el botón situado a la derecha Create pull request.
- Aquí deberemos de añadir un título para la solicitud de envio, aunque si nos percatamos, de forma predeterminada, el título será automáticamente el nombre del commit previamente ingresado.
- El siguiente campo lo ayuda a proporcionar una descripción de los cambios que realizó.
- Por último hagamos clic en Create pull request. Posteriormente seremos redirigidos automáticamente a la nueva solicitud de extracción.
¡Listo!, Con esto habremos realizado nuestro primer Pull Request, vayamos al siguiente y último paso. 🎉
En este paso terminaremos lo que se ha realizado con anterioridad, es decir, realizaremos la fusión de los archivos o cambios que se mandaron en el pull request mediente un merge.
- En la pantalla actual hagamos clic en el botón Merge pull request.
- Acto seguido, en el mini desplegable que aparecerá, demos clic en Confirm merge (cabe destacar que podemos editar tanto el título como la descripción, pero para este ejemplo dejemoslo tal y como se muestra).
- Una vez que la rama se haya fusionado, ya no la necesitaremos, para eliminarla, hagamos clic en Delete branch.
Nota: si eliminamos la rama, podemos restaurarla con la opción que nos aparecerá:
¡Listo! - Hemos fusionado correctamente nuestros cambios de la rama dev
a main
🎉
¡Felicidades!, ha completado este mini curso y ha obtenido los conocimientos básicos que todo desarrollador debe de saber.
Durante el curso, pudo adquirir un sólido conocimiento de los conceptos fundamentales de GitHub y aprender a utilizar de manera efectiva esta plataforma de control de versiones. A continuación un resumen de sus logros:
- Aprendiste sobre GitHub, repositorios, ramas, commits y solicitudes de incorporación de cambios.
- Creó una rama, realizo un commit y se genero una solicitud de incorporación de archivos.
- Se logró mezclar con exito la solicitud de cambios.
- ¡Hiciste tu primera contribución! 🎉
Si deseas crear tu perfil README, te recomendamos el artículo Cómo configurar un perfil de GitHub.
Consulte los siguientes recursos para obtener más información o participar:
- ¿Eres estudiante? De ser así echale un vistazo al Paquete de Desarrollador para Estudiantes.
- ¿Vives en México o Colombia? Aplica al programa GitHub Octerships, mismo que conecta a estudiantes con empresas para obtener experiencia profesional pagada.
- Únete al Meetup oficial de GitHub para Latinoamerica - GitHub ¡Presente!: En Español
- Sigue la cuenta de GitHub CDMX en Instagram - githubcdmx
Por último, nos encantaría escuchar lo que piensa de este curso, los invitamos a que nos dejen sus comentarios y si cumplió con sus expectactivas nos regalen una estrella ✨ o su recomendación con sus amigos.