git (openwebinars)
introducción
Un Control de Versiones no es más que una herramienta para facilitar el desarrollo de Software tanto entre equipos como individuales.
Nos va a permitir:
- Llevar un seguimiento de la evolución de nuestro Software
- Poder versionar nuestro Software.
- Colaborar sobre una misma base de código, sin tener que copiar y pegar entre equipos
Los que llevéis más tiempo en el mundo del desarrollo software quizá hayáis usado ya subversion u otra herramienta de control de versiones centralizado.
En un control de versiones centralizado, todo el versionado se hace en una máquina que digamos que contiene la única “fuente de verdad”. El servidor que contiene el control de versiones establece el grado de acceso que tiene cada usuario, y las acciones que puede realizar ( sólo lectura / lectura y escritura).
La clave para diferenciar un CVCS respecto a un control de versiones distribuido como Git, es que toda la historia y todo el versionado se hace en el servidor. Si dicho servidor fallara , y no se tuviera respaldo de todo lo anterior, se perdería todo el histórico de cambios.
En cambio , en Git , cuando accedes a un repositorio mediante clone , te estás descargando un snapshot de todo el repo con toda su historia hasta el momento en el que lo estás descargando. Podríamos verlo como que el servidor es una copia de respaldo , y toda la gente que trabaja en ese repositorio , va “sincronizando” esos cambios poco a poco, además de poder trabajar sin necesidad de conexión , ya que toda la actividad sobre la copia que tengamos es local, y no se perdería nada.