Control de Versiones
GIT, comandos básicos
Inicializar un repositorio
Un repositorio es una carpeta o conjunto de carpetas que contienen
archivos.
Podemos crear una carpeta y luego iniciar el repositorio dentro.
mkdir Ejemplo && cd Ejemplo
git init .
Con el comando git init se crea una carpeta oculta llamada .git y
contiene toda la información necesaria para que podamos realizar las
versiones (copias de seguridad) de nuestro proyecto.
En este punto Git no está llevando el control de ningún archivo.
Estatus
Identifica si existe un archivo modificado o no en nuestro repositorio.
Esto es importante ya que hay que ubicar los archivos en el escenario
antes de consolidarlos en la base de datos.
git status
Agregar archivos al escenario ("stage")
touch Archivo1.txt
echo 'Hola Mundo' >> Archivo1.txt
git add Archivo1.txt
Al ejecutar el comando git add Archivo1.txt estamos confirmando
(agregando el archivo al escenario) que los cambios que realizamos
sobre Archivo1.txt se quieren respaldar la próxima vez que
consolidemos la información.
Comodines de git add
- git add -A / git add .: Agrega todos
- git add --ignore-removal: Agrega nuevos y modificados, sin los eliminados
- git add -u: Agrega modificados y eliminados, sin los nuevos
Consolidar la información ("commitear")
Para consolidar el archivo previamente creado y puesto en escenario.
git commit -m "Commit Inicial"
La bandera -m indica que se debe consolidar el archivo con un mensaje
informativo.
¿Qué poner en el mensaje del commit?
- Resume los cambios en 72 caracteres o menos
- Brinca una linea en blanco
- Describe detalladamente los cambios, puedes usar bullets
- Sigue una guía con base a tu proyecto
Add y Commit juntos
Para hacer las cosas mas rápidas, puedes hacer un add y un commit en un
solo comando.
git commit -a -m 'Mensaje'
La bandera -a agrega los archivos modificados y
eliminados, pero no los nuevos
También podrías ejecutar los dos comandos, pero en una misma linea.
git add . && git commit -m 'Mensaje'
Borrar archivo
Sirve para borrar un archivo pero en este caso sirve para agregar al
escenario el archivo que vayamos a borrar
rm Archivo1.txt
git status
git rm Archivo1.txt
git status
Mover archivos o cambiar nombres
Confirma cualquier cambio de nombre o movimiento de un archivo
git mv Archivo2.txt Archivo2_cambio_de_nombre.txt
git status
Cambios entre versiones
Identifica todos los cambios de un archivo entre diferentes versiones.
git diff
Diferencias entre dos commits
Los cambios en git tienen un número hexadecimal que los identifica.
Para revisar la diferencia entre dos commits se debe utilizar el comando
git diff especificando los números hexadecimales de cada commit a comparar.
git diff [options] [--] […]
Historial (log)
Ver el historial de cambios de nuestro repositorio
git log
Es utilizado para ver el historial de cambios de nuestro repositorio.
Esto incluye información sobre el autor de los cambios, el mensaje breve
utilizado, la fecha en que se realizó y el número de serial (hash).
Historial por autor (log --author)
Ver el historial de cambios de nuestro repositorio por autor
git log --author
Es utilizado para ver el historial de cambios de nuestro repositorio.
Muestra sólo aquellas confirmaciones cuyo autor coincide con la cadena especificada.
git log --author=alepam90
Log con estadísticas
git log --stat
Muestra los archivos y las estadisticas de cambios en cada uno de ellos.
Log con datos de cambios
git log -p
Muestra las líneas donde se realizaron los cambios
La bandera -1 se utiliza para observar únicamente lo
último que fue commiteado.
Log abreviado
git log --pretty=format:"%h - %an - %ar - %s" --graph
Se pueden utilizar todas las banderas para cambiar las
salidas
Historial entre fechas
Ver el historial de cambios de nuestro repositorio entre fechas
git log --since="2017-11-17"
Es utilizado para ver el historial de cambios de nuestro repositorio. Despues de la fecha.
git log --before="2017-11-17"
Es utilizado para ver el historial de cambios de nuestro repositorio. antes de la fecha.
Quitar archivos del stage
¿Qué sucede si agregamos al escenario un archivo que ya no queremos
consolidarlo en ese instante? La lógica induce a que lo bajemos del
escenario y eso es precisamente lo que hace git reset.
git reset HEAD file
Cancelar los cambios
¿Qué pasaría si ahora nos arrepentimos de esa última modificación que
aún no commiteamos y la quisiéramos eliminar?
git checkout -- file
Corrigiendo commits
Frecuentemente cuando trabajamos y consolidamos los cambios olvidamos
agregar al escenario algún archivo o simplemente lo modificamos tarde y
lo queremos agregar a la información consolidada anteriormente.
git commit --amend --no-edit
Corrigiendo commits
Si deseamos que el mensaje del commit cambie, podemos hacer uno nuevo
git commit --amend -m "Nuevo mensaje para el cambio"