Git es un controlador de versiones que nos permite crear un entorno de desarrollo conjunto para varias personas. Imagina que estás desarrollando una página web o una aplicación con un grupo de personas y estás editando el mismo fichero. Si guardas el fichero y tu compañero estaba realizando otros cambios antes de que guardaras el archivo, habrás perdido todos los cambios realizados.
Con Git puedes evitar estos problemas, si sobrescribes un archivo y pierdes los cambios no hay problema, Git se encarga de crear una instantánea cada vez que guardas un archivo, permitiéndote no perder código, información ni tiempo.
Git almacena en instantáneas cada vez que confirmas un cambio o guardas tu proyecto, es decir, hace una "foto" del aspecto de todos tus archivos en ese momento.
Para aumentar la eficiencia, si algún archivo no ha sido modificado, en lugar de crear una instantánea del archivo, crea un enlace al archivo anterior para no tener 2 archivos iguales. Con el siguiente esquema entenderás mejor el método de cómo guarda los cambios Git:
Cuando inicias un proyecto con Git, éste por defecto crea la rama "master" (se puede decir que es la rama principal de nuestro árbol de desarrollo, donde tenemos nuestro proyecto funcionando). Puedes crear tantas ramas como sea necesario, también puedes borrar las ramas que ya no necesites.
Imagina que tenemos un proyecto en la versión 1.1 en la rama master, y está funcionando correctamente, pero queremos hacer cambios para un futuro, nos crearíamos una rama llamada develop en la cual iríamos programando y puliendo errores.
Cuando la tengamos lista para publicar, llevaríamos el proyecto a la rama master siendo la versión 1.1.2 y podríamos continuar mejorando nuestro proyecto en la rama develop sin afectar al original (master).
Creación y gestión de repositorios en Git