20 Rastrear cambios
Vamos a crear un archivo de texto dentro de la carpeta Mi_primer_repo.
nano prueba.txtY escribamos algo en el archivo y guardemoslo.
Primer archivo en el que rastrearemos cambios.Ahora, si preguntamos por el estado de nuestro proyecto vamos a obtener un mensaje de que hay algo nuevo:
git statusEl mensaje que dice untracked files nos indica que hay cambios y que a Git no se le ha indicado que debe registrarlos. Para añadir estos cambios hacemos lo siguiente:
git add prueba.txtSi revisamos el estado del proyecto vemos que ahora un mensaje diferente, ahora solo nos indica que no se ha realizado ningún commit pero que si se tiene registro de algo que cambio.
git statusPara hacer un commit:
git commit -m "Comenzando archivo de prueba y registro de cambios"Este comando le dice a Git que tome todo lo que se añadió y que guarde una copia permanente dentro del directorio .git. Cada commit tiene un identificador único. Si no especificamos el mensaje, Git abrirá un editor de texto para colocar el mensaje. Los mensajes deben de reflejar lo que se está guardando para que sean útiles en el futuro.
Si ahora verificamos el estado del proyecto veremos que nos dice que no hay nada a lo que hacer commit ya que en el paso anterior añadimos todo y no hemos realizado ningún cambio.
git statusPara mostrar el historial del proyecto:
git logAhora, añadamos una línea nueva al archivo prueba.txt
nano prueba.txtPrimer archivo en el que rastrearemos cambios.
Segunda línea de cambios para continuar con el ejemplo.
Si revisamos el estado veremos de nuevo que nos devuelve el mensaje de que hay archivos sin rastrear. Para comparar las diferencias del archivo usamos:
git diffEl signo + nos está indicando cuales son los cambios en el archivo nuevo.
git diff?
Git muestra las diferencias entre la versión actual de los archivos y la última versión guardada en el repositorio.
Regla rápida para interpretar un diff:
+: línea agregada.-: línea eliminada.- Sin símbolo : línea sin cambios.
---: versión anterior del archivo.+++: versión actual del archivo.@@ ... @@: ubicación de los cambios dentro del archivo.
Por ejemplo, si obtenemos:
--- a/prueba.txt
+++ b/prueba.txt
@@ -1 +1,2 @@
Primer archivo en el que rastrearemos cambios.
+Segunda línea de cambios para continuar con el ejemplo.Esto significa que la primera línea no cambió y se agregó una nueva línea al final del archivo.
De manera análoga a un procesador de textos, podemos pensar que:
- Las líneas con
+(generalmente en verde) son texto agregado. - Las líneas con
-(generalmente en rojo) son texto eliminado. - Las líneas sin símbolo se muestran únicamente para dar contexto a los cambios.
Vamos a hacer un commit de este cambio.
git commit -m "Añadimos la segunda linea al archivo"¿Qué paso? Nos esta diciendo que no hemos añadido nada al staged area a lo que le podamos hacer un commit, recuerden añadir todo antes de hacer commit.
git add prueba.txt
git commit -m "Añadimos la segunda linea al archivo"Añadir todo primero al área de preparación nos permite tener un mejor control de a que le estamos haciendo commit, por ejemplo podemos añadir y hacerle commit solo al archivo donde tenemos la bibliografía y no a todo el proyecto donde hay partes no completas.
Añadamos una tercera línea al archivo y verifiquemos las diferencias en los archivos, después añadanlo al área de preparación y revisen las diferencias. ¿Qué sucede?
Al añadirlo al área de preparación lo estamos añadiendo permanentemente, entonces no hay ninguna diferencia. Si queremos las diferencias con lo último a lo que se le hizo commit podemos hacer lo siguiente:
git diff --stagedAhora hagamos el commit.
git commit -m "Tercera línea para probar que pasa cuando se añade al área de preparación"Si revisamos el historial, veremos ahora 3 commit diferentes:
git logCuando el historial es muy grande no nos va a mostrar todo el historial nuestra terminal, para ir avanzando debemos presionar Spacebar y para salir la letra Q. Al presionar / se puede buscar alguna palabra en los mensajes de los commits. Para limitar la cantidad de información que nos regresa log podemos especificar con la opción -n la cantidad de commits desde el más reciente. Para ver por ejemplo el último utilizaríamos lo siguiente:
git log -1Si queremos ver los mensajes en una sola línea usamos:
git log --onelineGit no guarda información de directorios vacíos. Por ejemplo:
mkdir dic_prueba
git status
git add dic_prueba
git statusSi creamos un directorio con archivos, entonces si podemos añadir todos los archivos a la vez y si quedará el registro del directorio también.
touch dic_prueba/prueba1.txt dic_prueba/prueba2.txt dic_prueba/prueba3.txt
git status
git add dic_prueba
git status
git commit -m "Ejemplo de como realizar un registro de directorios con archivos"En algunas ocasiones verán directorios vacíos con un archivo .gitkeep, este archivo es solo para que podamos añadir el repo a Git.
Crea un archivo mi_archivo.txt, escribe algo en el y guárdalo en la ruta Mi_primer_repo. Añádelo a la historia de tu repo. ¿Cuáles son los pasos que debes realizar?
Modifica el archivo prueba.txt añadiéndole una línea, ahora en el archivo mi_archivo.txt agrega algo y guárdalo. ¿Cómo añadirías los dos archivos al staging área? Añádelos y realiza el commit correspondiente.
Crea un repositorio llamado bio. Escribe en un archivo llamado me.txt tres líneas de tu biografía, has un commit con tus cambios. Modifica una línea y agrega una cuarta línea. Muestra las diferencias entre el archivo en el staging área y el actual.