¿Qué son Git y GitHub y porque son esenciales, si deseas trabajar en proyectos de código abierto?

¿Qué son Git y GitHub y porque son esenciales, si deseas trabajar en proyectos de código abierto?

Empecemos definiendo ¿qué es Git? Git es un sistema de control de versiones distribuido, que permite a los desarrolladores rastrear los cambios en su código a lo largo del tiempo.

A diferencia de los sistemas de control de versiones centralizados, Git posee la característica de permitir a cada desarrollador tener una copia completa del repositorio, lo que facilita el trabajo offline y la colaboración entre múltiples desarrolladores.

Para utilizarlo es fundamental que el desarrollador conozca y maneje los siete principales conceptos de Git, a continuación, te presentamos:

1. Repositorio (Repo): es una carpeta que Git rastrea, en ella puede contener archivos de código, documentación, y más. Los repositorios pueden estar ubicados en tu máquina local o en un servidor remoto.

2. Commit: es un punto de control en la historia del desarrollo, representa un conjunto de cambios realizados en el repositorio. Cada commit incluye un mensaje descriptivo que explica qué cambios se hicieron y por qué.

3. Branch: permiten a los desarrolladores trabajar en diferentes versiones del proyecto al mismo tiempo. Por ejemplo, puedes tener una rama principal (main o master) que contiene la versión estable del código, y ramas separadas para nuevas características o correcciones de errores.

4. Merge: cuando se fusiona una rama con otra. Por ejemplo, cuando terminas de trabajar en una nueva característica en una rama, puedes fusionarla con la rama principal.

5. Fork: es una copia de un repositorio que puedes modificar sin afectar al repositorio original. Esto es útil cuando quieres proponer cambios a un proyecto sin alterar la versión original hasta que tus cambios sean aprobados.

6. Pull Request (PR): Una solicitud de incorporación de cambios es cuando pides al mantenedor del proyecto que revise y acepte los cambios que has realizado en tu fork o rama, para integrarlos en el repositorio original.

7. Clone: significa hacer una copia completa de ese repositorio en tu máquina local.

Ahora hablemos de la plataforma basada en la web que utiliza Git para el control de versiones y ofrece una interfaz amigable para la colaboración en proyectos de software, GitHub.

GitHub posee funciones claves como permitir a los desarrolladores alojar sus repositorios, colaborar con otros en proyectos, realizar revisiones de código, y gestionar tareas relacionadas con el desarrollo.

Conozcamos las principales funcionalidades de la plataforma GitHub:

1. Repositorios Públicos y Privados: GitHub permite crear repositorios públicos (visibles para cualquier persona) o privados (solo accesibles para usuarios autorizados).

2. Issues y Proyectos: GitHub incluye herramientas para la gestión de tareas y errores (issues) y para organizar el trabajo en tableros de proyectos (projects), similar a Trello.

3. Revisiones de Código: Los pull requests en GitHub permiten a los desarrolladores revisar, comentar y discutir cambios propuestos antes de fusionarlos en el código principal.

4. GitHub Actions: Esta funcionalidad permite automatizar flujos de trabajo, como ejecutar pruebas automáticas o desplegar el código en producción.

5. GitHub Pages: Permite alojar sitios web directamente desde un repositorio de GitHub, lo cual es útil para la documentación de proyectos o sitios personales.

Si ya decidiste aprender a usar Git y GitHub, te vamos a indicar como empezar a usarlos en pasos breves y sencillos:

1. Instala Git en tu máquina local: Git es una herramienta de línea de comandos que puedes instalar en cualquier sistema operativo. Puedes descargarlo desde https://git-scm.com/

2. Crea una cuenta en GitHub: Regístrate en https://github.com/ para crear una cuenta gratuita. Esto te permitirá alojar repositorios y colaborar en proyectos de otros.

3. Configura Git en tu máquina: Abre la terminal (o Git Bash en Windows) y configura tu nombre de usuario y correo electrónico:

git config --global user.name "Tu Nombre"

git config --global user.email "tuemail@example.com"

4. Clona un Repositorio: Para trabajar en un proyecto existente, clona el repositorio a tu máquina local, esto creará una copia del repositorio en tu máquina:

git clone https://github.com/usuario/proyecto.git

5. Haz Cambios y Realiza Commi: Navega al directorio del proyecto, haz cambios en los archivos, y usa los siguientes comandos para guardarlos:

git add .

git commit -m "Descripción de los cambios"

6. Crea una Rama Nueva: Es recomendable trabajar en una nueva rama para no alterar la rama principal:

git checkout -b nombre-de-la-rama

7. Envía Tus Cambios a GitHub: Una vez que hayas hecho commits, puedes enviar tus cambios a GitHub:

git push origin nombre-de-la-rama

8. Crea un Pull Request en GitHub: Ve al repositorio en GitHub y verás una opción para crear un pull request desde tu nueva rama. Esto inicia el proceso de revisión de tu código.

9. Participa en la Revisión de Código: Otros colaboradores pueden revisar y comentar tu pull request. Acepta sugerencias, realiza ajustes si es necesario, y una vez aprobado, tu código puede ser fusionado en la rama principal.

10. Explora y Contribuye: Busca proyectos interesantes en GitHub usando etiquetas como “Good First Issue” o explora los repositorios de organizaciones como Mozilla, Google, o Facebook para comenzar.

Recuerda que, al dominar Git y GitHub, te equipas con herramientas esenciales que no solo son fundamentales para trabajar en proyectos de código abierto, sino que también son ampliamente utilizadas en entornos profesionales.

Si deseas obtener más información te dejamos recursos adicionales para que continues tu aprendizaje: 

  • Pro Git (Libro gratuito): Un libro completo sobre Git que cubre desde conceptos básicos hasta avanzados. Disponible en línea en git-scm.com/book/en/v2

  • GitHub Learning Lab: GitHub ofrece una serie de tutoriales interactivos para aprender Git y GitHub en lab.github.com

  • Try Git: Un curso interactivo corto para aprender los fundamentos de Git en try.github.io

¿Listo para dar el siguiente paso?

Cuéntanos tu reto y armamos contigo una ruta clara: diagnóstico, propuesta y resultados medibles.

Contáctanos