git es un sistema de control de versiones distribuido, que dicho asà suena geek y aburrido, pero que en la práctica ha revolucionado la forma como se desarrollan aplicaciones informáticas y, en general, se crea cualquier proyecto en equipo. Esencialmente, git permite que un equipo trabaje concurrentemente y de forma segura sobre un conjunto de ficheros de texto, pero desde el kernel del sistema operativo Linux, para el que desarrolló originalmente, hoy en dÃa se ha extendido a la mayorÃa de las aplicaciones libres y eventualmente al resto de las aplicaciones, donde está sustituyendo a otros sistemas de versiones centralizados como subversion o CVS o distribuidos como Mercurial o Bazaar. git es rápido, seguro, y tiene gran cantidad de posibilidades de alojamiento tanto gratuitos (GitHub, Bitbucket, o auto-alojados como GitLab o Gitorious) como de pago.
Aprendiendo git
Este libro, extraÃdo de un curso virtual impartido en la Universidad de Granada, http.//cevug.ugr.es/git, tiene un enfoque práctico, partiendo de los ejemplos de uso más básico de git hasta meterse en uso más avanzado, centrado sobre todo en cómo se usa en la plataforma GitHub.
Sus diferentes capÃtulos tratan del uso básico mono-usuario de git, cómo resolver conflictos con el mismo, cómo trabajar con diferentes versiones del trabajo, las denominadas ramas, que permiten probar de forma segura diferentes opciones dentro de un trabajo para luego incorporarlas a la rama principal, cómo usar las opciones del sitio de alojamiento más popular hoy en dÃa, GitHub y finalmente, cómo aprovechar la facilidad de git para automatizar tareas en el repositorio en lo denominado ganchos o hooks.
A lo largo del camino se aprenden conceptos como repositorio, sistema distribuido de versiones, desarrollo basado en test e integración continua y se aprenden una serie de buenas prácticas en el desarrollo de software usando un sistema de control de versiones.
El libro tiene un enfoque práctico dirigido a cualquier persona que tenga un manejo básico de programación y de la lÃnea de órdenes del sistema operativo, sin fijarnos en ningún lenguaje de programación en concreto aunque en el último capÃtulo se presentan ejemplos en diferentes lenguajes de programación. git es agnóstico con respecto a tales lenguajes por lo que en este libro no nos centramos en ninguno de ellos.
Los autores
Ambos son desarrolladores y usan extensamente git en sus propios proyectos