Un sistema de control de versiones es un software que nos permite mantener el histórico de cambios que se van realizando cuando editamos los archivos de un proyecto. Habitualmente se utiliza en proyectos de código. Es una herramienta imprescindible para un desarrollador e inexcusable si en el proyecto participa más de una persona.
Los primeros sistemas de control de versiones de uso extendido fueron CVS y Subversion, pero estas herramientas tenían algunas carencias y eran bastante engorrosas de utilizar.
En el año 2005, BitKeeper, la herramienta de control de versiones que usaba Linux para su desarrollo dejó de ser gratuita. Para solucionar esto el propio Linus Torvalds, creador de Linux, creó Git en unas pocas semanas. Ahora mismo es el estándar en este campo.
Una gran ventaja de Git frente a los anteriores es que se trata de un sistema distribuido, cada desarrollador tiene una copia completa del repositorio del código en su propio equipo local, esto lo hace muy rápido y lo independiza de la disponibilidad de una conexión permanente.
Existen otros sistema de control de versiones como Mercurial, y por supuesto Subversion y CVS aún perviven de una manera residual.
Git funciona perfectamente en local, pero lo habitual es tener los proyectos en algún servidor para poder desarrollar de forma colaborativa. Cualquier servidor puede servir para alojar un repositorio de Git, aunque hay algunos servicios en la nube muy famosos como GitHub, GitLab o Bitbucket que usan millones de personas.


