Skip to content

Instantly share code, notes, and snippets.

@nebil
Last active October 8, 2023 04:15
Show Gist options
  • Save nebil/10ac0626bd2ef06e5fc158f6504c3ecd to your computer and use it in GitHub Desktop.
Save nebil/10ac0626bd2ef06e5fc158f6504c3ecd to your computer and use it in GitHub Desktop.
📚 Una lista de recursos sobre Git 📚

Una metaguía de Git

Esta guía resume algunos de los aspectos básicos de Git, para facilitar el aprendizaje de esta herramienta.
Ahora bien, el método de este documento es simple: entregar enlaces hacia obras de excelente calidad.
Por lo tanto, esta guía tiene el modesto propósito de ofrecer un compendio actualizado de recursos.
Espero, entonces, que esta metaguía sea provechosa para tu estudio de Git. :grinning:

¿Qué es?

Git —que, por cierto, se pronuncia como /guit/— es definido generalmente como…

un flamante sistema distribuido de código abierto para el control de versiones

Ahora, al reescribir esto en términos más simples*, Git permite rastrear cambios en archivos computacionales,
siendo, entonces, una herramienta de muchísima utilidad; sobre todo, en la disciplina del desarrollo de software.
Además, por su versatilidad, performance y seguridad, Git es utilizado por cientos de miles de organizaciones,
tanto en importantes proyectos de código abierto como en reconocidos softwares comerciales.

¿Para qué?

Aquí expondré una lista —en ningún caso exhaustiva— de múltiples ventajas relacionadas al uso de Git.
Y si bien algunas de ellas toman protagonismo cuando desarrollamos un proyecto en equipo,
es importante destacar que la mayoría de ellas también se aplican en solitario.
💡 Además, para practicar, es una buena idea usar Git en proyectos personales.

Esta herramienta nos permite

  • llevar un registro de múltiples versiones de un archivo,
  • trabajar con otros desarrolladores en un mismo proyecto,
  • ver cuánto ha aportado cada uno: quién, en qué y cuándo,
  • experimentar, sin temor, con alguna nueva funcionalidad,
  • revisar el historial de cierto fragmento de código,
  • rastrear bugs, para saber qué (carajo) fue lo que rompió el software.

En otras palabras, Git sirve para inspeccionar qué cambios fueron hechos; y quién, cuándo y por qué los realizó.
Y si ya estás familiarizado con algunos comandos básicos (e.g. clone, status, add, commit, push, pull),
quiero enfatizar que Git, gracias a su notable flexibilidad, nos puede entregar mucho más que eso.

¿Dónde partir?

Tutoriales

No espero reinventar la rueda en este tema: hay cientos de tutoriales dando vueltas por las interwebs.
Pero mira, aquí tienes el podio con los tres mejores**, ordenados de menor a mayor profundidad.

  • 🥉 Try Git
    El (clásico) tutorial interactivo de Git, creado por Code School.
    No debería tomar más de una hora, siendo un buen punto de inicio.

  • 🥈 Ry’s Git Tutorial
    Un excelente tutorial redactado desde un punto de vista práctico.
    Además, las explicaciones están acompañadas de ilustrativos diagramas.
    (Nota: el enlace ya no funciona, pero es posible encontrarlo acá.)

  • 🥇 Pro Git
    Espera, ¿quieres saber todavía más? 🤓
    Aquí tienes el libro oficial para aprender todo acerca de Git:
    desde los comandos fundamentales hasta los conceptos más rebuscados.

Y finalmente, una mención honrosa para…

  • 💐 Explain Git with D3
    Una obra sobresaliente que explica visualmente qué ocurre al ejecutar algunos comandos de Git.
    Me saco el 🎩 ante la creatividad del señor Wei Wang.

Instalación

Lo escucho y lo olvido,
lo veo y lo recuerdo,
lo hago y lo entiendo.

          un antiguo proverbio chino

Siguiendo este proverbio, una buena idea para empezar a ensuciarse las manos es instalar Git de forma local.
Sin embargo, la tecnología no ha dejado de acelerar: los procedimientos de instalación cambian año a año,
y varían según cada sistema operativo —es posible, incluso, que Git ya esté instalado en tu computador. 😌
Por lo tanto, prefiero entregar una solución future-proof que, además, puede aplicarse en otros contextos.
Por otra parte,

Es mejor aprender a 🎣
que recibir los 🐟 🐡 🐠.

          un reciente proverbio emoji

Por esto, el simple (pero altamente efectivo) método consiste en… buscar con Google*** en inglés.
(“¿Y por qué no en español?” Porque, tristemente, hay más recursos disponibles en inglés.)
Entonces, más concretamente, la búsqueda debería verse como

how to install git on <mi-sistema-operativo> <con-su-versión>

Entonces si, por ejemplo, usas Ubuntu 16.04 (LTS), escribe lo siguiente:

how to install git on ubuntu 16.04

Listo, ahora sigue las instrucciones. 😅

Buenas prácticas

Es recomendable mantener cierto grado de consistencia en la forma de trabajar con Git, puesto que,
si bien podría parecer como una pérdida de tiempo, esto será de gran ayuda en el mediano-largo plazo.
Esto es análogo a las convenciones que se establecen al momento de escribir y de estructurar un software.
A continuación, entregaré algunos consejos que intentarán acercar ese objetivo.

  • Escribir buenos mensajes
    Pero… ¿qué es un buen mensaje? Esta guía intenta ofrecer una respuesta. </advertising>

  • Realizar commits atómicos
    Un commit debe ser pensado como un envoltorio, cuyo propósito es hermanar cambios relacionados.
    Luego, a modo de ejemplo, dos bugfixes distintos deberían ser colocados en dos commits distintos.
    Asimismo, elaborar commits cohesivos permitirá entenderlos fácilmente, pudiendo, por ejemplo,
    revertirlos en caso de que fuese necesario.

  • No hacer commits a medio camino
    Crear un commit incompleto —provocado, imaginemos, por el hecho de que apagarás tu computador—
    es una operación que debería ser evitada, ya que, probablemente, no cumplirá con el punto anterior.
    Además, si necesitas cambiar de branch (e.g. para hacer un hotfix), no hagas un commit apurado.
    En un caso así, git stash es el comando apropiado, pues permite guardar cambios temporales.

  • Ponerse de acuerdo en un workflow
    Existen muchos workflows sobre Git. La elección del flujo adecuado depende de diferentes criterios:
    el tamaño del proyecto, las preferencias del equipo, los métodos de deployment, entre otros factores.
    Finalmente, lo importante es llegar a un consenso para que todo el equipo esté en la misma sintonía.
    Aquí tienes enlaces hacia dos notables sistemas de flujo: git-flow y GitHub Flow.

Referencias

Version Control Best Practices — Tobias Günther, blog de Git Tower

Licencia

Creative Commons License
Este documento está bajo una licencia Creative Commons 4.0.


* simplificación grosera (e incluso irrespestuosa) ya que “rastrear cambios” es una descripción bastante mezquina.
** mejores, según criterios que no serán revelados en este documento.
*** o mejor con 🦆🦆 para proteger tu privacidad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment