Git es un sistema de control de versiones distribuido cuyo objetivo es el de permitir mantener una gran cantidad de código a una gran cantidad de programadores eficientemente. Hay dos características de Git que creo que ayudan a entender esta definición simplista.
La primera gran diferencia de Git con respecto a otros sistemas de control de versiones es la forma que tiene de manejar los cambios en los ficheros. Mientras que otros scv’s almacenan los archivos originales, conservando una lista de los cambios realizados a dichos archivos en cada versión, Git guarda una “foto” (snapshot) del estado de cada archivo en un momento concreto. Si uno de los archivos no ha cambiado no crea una nueva copia del mismo, simplemente crea una referencia al archivo original.
La segunda es la eficiencia. Git se basa en que cada programador almacena una copia completa del repositorio en su máquina de forma local, incluido el historial de cambios. Esto implica que muchas de las operaciones realizadas sobre el código fuente no tienen lugar en la red, permitiendo que la velocidad de proceso dependa únicamente en los recursos locales.
Algunos comando en Git
- Crea un directorio nuevo, ábrelo y ejecuta
git init
para crear un nuevo repositorio de git. - Hacer checkout a un repositorio, primero creamos una copia local del repositorio ejecutando
git clone /path/to/repository
Si utilizas un servidor remoto, ejecutagit clone username@host:/path/to/repository
- Tu repositorio local esta compuesto por tres «árboles» administrados por git. El primero es tu
Directorio de trabajo
que contiene los archivos, el segundo es elIndex
que actúa como una zona intermedia, y el último es elHEAD
que apunta al último commit realizado. - Puedes registrar cambios (añadirlos al Index) usando
git add <filename>
git add .
Este es el primer paso en el flujo de trabajo básico. Para hacer commit a estos cambios usagit commit -m "Commit message"
Ahora el archivo esta incluído en el HEAD, pero aún no en tu repositorio remoto. - Tus cambios están ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio remoto ejecuta
git push origin master
Reemplaza master por la rama a la que quieres enviar tus cambios. Si no has clonado un repositorio ya existente y quieres conectar tu repositorio local a un repositorio remoto, usagit remote add origin <server>
Ahora podrás subir tus cambios al repositorio remoto seleccionado.
Si esta bien, no hay problema.