Git a fondo
Git a Fondo
Hace un tiempo bl33h hizo un artículo diciendo por qué deberías usar Github y Git. Claro, puede que ya sepas los comandos básicos: add, commit, push, pull y merge. Pero Git puede es mucho más que solo esos comandos. Aquí están 7 buenos hábitos y prácticas que puedes usar con Git.
1. Firmar Commits
La primera vez que utilizas Git te pedirá ingresar un nombre y un correo. ¿Te has puesto a pensar cómo nunca te pidió verificar un correo? Cualquier persona puede colocar crear commits con tu nombre y correo sin ningún problema.
¿Pero cómo evitas que otras personas hagan commits con tu nombre? En realidad, no puedes. Pero lo que sí puedes hacer, es firmar tus commits para que otras personas tengan una manera de asegurarte cuáles commits son realmente tuyos.
2. Conventional Commits
Los mensajes de commits sirven para tener una indicación de qué cambios se realizaron. Pero a veces no todos siguen buenas prácticas de commits. Por ejemplo, durante mi tiempo como profesor auxiliar, noté que muchas personas tenían pésimos mensajes de commits. ¡Muchos ni si quiera estaban relacionados con el código!
Ahora, pongámonos en los zapatos de una persona nueva en una empresa. Decides familiarizarte con el código y revisas el historial de Git. Si los mensajes de commits son horribles, te será muy difícil comprender la historia de todo el repositorio.
Para esto, surgió una moda llamada Commits Convencionales. Por ejemplo, si visitas los repositorios de React y Angular verás que todos siguen la misma estructura. Especifican el módulo que se está afectando, qué cambios se hicieron y un pequeño título con la descripción de sus cambios.
Puedes ver más de esto aquí: https://www.conventionalcommits.org/en/v1.0.0/
3. Squash
Git es un control de versiones. Tiene sentido que antes de hacer cambios grandes a tu código, realices uno o más commits. Pero, como vimos con Conventional Commits, tu commit tiene que completar una tarea. ¿Qué haces cuando todavía no has terminado con un feature, pero quieres realizar un commit antes de realizar un experimento?
Squash es un comando de Git que combina commits. De manera que puedes realizar todos los commits que quieras y cuando ya termines tu feature, usas Squash para que sea solo un commit de un feature. ¿Interesante, no?
Solo ten en cuenta que Squash “modifica la historia”. En términos generales, si ya le diste push a un commit, no apliques Squash sobre él; puede causar problemas.
4. Branches
En proyectos personales o universitario es muy extraño que tengas que realizar una Branch. Pero en el mundo laboral, cuando trabajes con proyectos con otras personas, no van a trabajar sobre una misma rama y solucionar conflictos de Git constantemente. Se vuelve demasiado complicado.
Claro, digamos que decidiste seguir buenas prácticas y usar branches, aprendiste el concepto, los comandos y cuándo deberías usarla. Pero puede que te haya faltado una cosa, ¿cómo usarlas?, ¿qué branches deberías crear?
La manera más común para estructurar branches es Git Flow. Con Git Flow, tendrás varios tipos de branches: features, main, develop y versiones. Puede verse algo complicado al inicio, pero una vez te acostumbras hace mucho sentido. Claro, no es necesario realizar Git Flow por completo. Personalmente, me limito a una variación de Git Flow llamada Github Flow.
5. Stash
Ahora que decidiste trabajar usando branches, te diste cuenta de que no puedes cambiar un Branch sin abandonar tus cambios a medias. Estabas trabajando en un feature, pero acaba de aparecer un bug urgente que tienes que arreglar ya.
Podrías hacer un commit, pero no tienes suficientes cambios para hacer un commit. Claro, podrías solo utilizar Squash, pero a veces simplemente es demasiado trabajo.
Otra alternativa es utilizar un Stash. Stash es como un commit que no es reflejado en tu historia. Incluso si le das push, tus demás compañeros no recibirán tu Stash.
README
Lo primero que verá una persona cuando entra a tu proyecto es el README. Justo al abrir un respositorio en Github automáticamente te mostrará el README. Las buenas impresiones son importantes, incluso para tu código.
Los README tienden a estar escritos con Markdown, puedes crear tablas, poner imágenes, utilizar letra cursiva e itálica. Pero puedes hacer incluso más. Por ejemplo, mostrar ecuaciones de LaTeX y utilizar Mermaid para hacer todo tipo de diagramas.
LFS
¿Nunca te ha tocado subir archivos grandes a Git? Como cuando estás trabajando en un juego con tu equipo y tienes un modelo muy pesado. No puedes quitarlo de Git, es parte importante de tu proyecto; pero hace a las operaciones de Git muy lentas y vuelve tu proyecto pesado.
No eres a la primera persona a la que le ha pasado. Para este tipo de problemas, se creó una alternativa llamada Large-File-System. Consiste a que en vez de guardar tus archivos grandes en git, únicamente guardas un Hash de tu archivo. El archivo real será guardado en otro servidor, para asegurarse que solo descargues los archivos que necesitas.
- Oz
No hay comentarios: