Guía Práctica de Git para Contribuciones Open Source
- Published on
Git es una herramienta de control de versiones distribuida que permite a los desarrolladores colaborar de manera eficiente en proyectos de software. Aquí abordaremos los conceptos más importantes de Git y cómo utilizarlos con ejemplos prácticos. Estos pasos son los que mas comunmente se realizan durante un Issue. Git es una herramienta poderosa que puede parecer intimidante al principio, pero con la práctica, se vuelve indispensable para la colaboración en proyectos de software. Esperamos que esta guía te haya proporcionado una base sólida para empezar a usar Git de manera efectiva.
Comandos necesarios para completar un Issue
Hacer un Fork del Repositorio
- Ve al repositorio original en GitHub.
- Haz clic en el botón "Fork" en la esquina superior derecha.
- Esto creará una copia del repositorio en tu cuenta de GitHub.
- Clonar el Repositorio Forkeado (Obtener el link desde el repo de su perfil, no el original) ** Tip: Sincronizar los cambios de su repositorio con el original. Para hacer esto debe dar click en Sync Fork (Arriba de el numero de commits)
- Clonar el Repositorio Forkeado git clone URL
- Crear una Nueva Rama (Branch) git checkout -b nombre_rama
** Tip: Lo mejor es poner un nombre asociado a el Issue.
- Hacer Cambios y Commits git add archivo git commit -m "Mensaje del commit"
** Tip: Ver la siguiente guía. Además de fijarse en commits anteriores del repositorio para ver cuál es la manera que tienen de escribir los commits. https://midu.dev/buenas-practicas-escribir-commits-git/
Hacer Push de la Rama al Repositorio Remoto
git push origin nombre_rama
Crear un Pull Request (PR) en GitHub
- Ve a tu repositorio forkeado en GitHub.
- Haz clic en el botón "Compare & pull request".
- Llena el formulario del PR, incluyendo una descripción detallada de los cambios realizados.
- Haz clic en "Create pull request".
Una vez realizado esto, los mantainers estarán en la obligación de hacerte el merge, o bien si hacen falta cambios te lo pedirán. En dado caso, solo tienes que hacer los cambios respectivos, los commits y nuevamente el push para que se reflejen los cambios en el mismo PR.
Comandos Útiles
- Ver los Cambios Realizados git log
- Revertir Cambios git revert * commit *
- Ver cambios locales git status
- Eliminar una rama git branch -d nombre_rama
- Obtener los últimos cambios del repositorio remoto git pull origin main
Effective communication during Open Source Contributions
Les quería compartir el siguiente ejemplo de una comunicación realmente efectiva Recordemos que en el open source, los maintainers y colaboradores pueden estar en cualquier parte del mundo. Las zonas horarias SIEMPRE van a ser un tema. Por lo tanto, es importante facilitarle la vida a aquellos que nos están ayudan y comunicarse de la mejor manera asincrónica. La siguiente imagen es un comentario que Dani Garbanzo dejó en un Pull Request.
Noten lo siguiente: Buen formato Estructura amigable y organizada Deja claro el razonamiento y dudas que tiene Acá se nota un análisis profundo del problema en mano y esfuerzo de parte de Dani. Esto siempre se aprecia de parte del maintainer, ellos van a devolverles la energía que ustedes dan. Mensajes tan organizados con preguntas estructuradas son súper eficientes porque a ellos también se les facilita responder todo de manera organizada.
OSS Best Practices
Contribuyendo a un proyecto en OnlyDust, me recordaron algo que no estaba aplicando a mis commits, y fue de parte de nada mas y nada menos que ClementWalter, uno de los top contributors en OnlyDust, una bestia del código abierto, lo que me dijo básicamente fue que mis commits no estaban firmados jajaj 🥲, y que en proyectos de código abierto es muy deseable que los que están contribuyendo suban sus commits firmados, ya que esto verifica la identidad del que esta subiendo código, algo que sabía que existía, más no sabía que en open-source era necesario o importante, como parte de nuestra marca profesional es muy bien visto.
Acá les dejo una pequeña guía de como firmar sus commits: https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification Si pueden, agregen esto como parte de su marca de trabajo!