Por qué git
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.
A quién va dirigido
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