Analizar cambios en los archivos de tu proyecto con Git
Resumen
El comando git show nos muestra los cambios que han existido sobre un archivo y es muy útil para detectar cuándo se produjeron ciertos cambios, qué se rompió y cómo lo podemos solucionar. Pero podemos ser más detallados.
Si queremos ver la diferencia entre una versión y otra, no necesariamente todos los cambios desde la creación del archivo, podemos usar el comando git diff commitA commitB.
Recuerda que puedes obtener el ID de tus commits con el comando git log.
Comandos para analizar cambios en GIT
git init: inicializar el repositorio
git add nombre_de_archivo.extensión: agregar el archivo al repositorio
git commit -m “Mensaje”: Agregamos los cambios para el repositorio
git add: Agregar los cambios de la carpeta en la que nos encontramos agregar todo
git status: visualizar cambios
git log nombre_de_archivos.extensión: histórico de cambios con detalles
git push: envía a otro repositorio remoto lo que estamos haciendo
git pull: traer repositorio remoto
ls: listado de carpetas en donde me encuentro. Es decir, como emplear dir en windows.
pwd: ubicación actual
mkdir: make directory nueva carpeta
touch archivo.extensión: crear archivo vacío
cat archivo.extensión: muestra el contenido del archivo
history: historial de comandos utilizados durante esa sesión
rm archivo.extensión: Eliminación de archivo
comando --help: ayuda sobre el comando
git checkout: traer cambios realizados
git rm --cached archivo.extensión: se utiliza para devolver el archivo que se tiene en ram. Cuando escribimos git add, lo devuelve a estado natural mientras está en staging.
git config --list: muestra la lista de configuración de git
git config --list --show-origin: rutas de acceso a la configuración de git
git log archivo.extensión: muestra la historia del archivo
En Ubuntu normalmente edita en "nano" o "vim"
En el minuto 3:20 para salir de la opción de ingresar un mensaje se debe ingresar los siguientes comandos
nano
Ctrl+ o
EnterCtrl+ x
VIM
Esc:wq
Enter****************:w = escribir o cuardar
:q =Guardar o salir
Agrego: "q"(quit) sale del editor pero no guarda y si tiene algún cambio te da un mensaje, si quieres salir sin que salga el mensaje usa "q!"
Muy buena información para utilizar Vim y Nano.
Comparto con ustedes por si les interesa los comandos de los que he tomado nota. junto con su descripción
$ git init //inicializar el repositorio
$ git add nombre_de_archivo.extencion //Agregar el archivo al repositorio
$ git commit -m "Mensaje"// Agregamos los cambios para el repositorio
$ git add .// Agregar los cambios de la carpeta en la que nos encontramos agregar todo
$ git status // visualizar cambios
$ git log nombre_de_archivos.extencion //historico de cambios con detalles
$ git push //envia a otro repositorio remoto lo que estamos haciendo
$ git pull //traer repositorio remoto
$ ls //listado de carpetas en donde me encuentro es decir dir en windows
$ pwd //ubicacion actual
$ mkdir //make directori nueva carpeta
$ touch archivo.extencion//crear archivo vacio
$ cat archivo.extencion//muestra el contenido del archivo
$ history //historial de comandos utilizados durante esa sesion
$ rm archivo.extencion //eliminacion de archivo
$ comando --help //ayuda sobre el comando
$ checkout //traer cambios realizado
$ git rm --cached archivo.extencion//se usa para devolver el archivo que se tiene en ram cuando escribimos git add lo devuleve a estado natural mientra esta en staging
$ git config --list //muestra la lista de configuracion de git
$ git config --list --show-origin//rutas de acceso a la configuración de git
$ git log archivo.extencion //muestra la historia del archivo
muchas gracias!!
Kuchau compañero, ¡Muchas gracias!
Para no hacer el copiar y pegar en la consola, puede hacer lo siguiente:
digitar el comando git diff (espacio)
buscar y escoger la linea a copiar y subrayar
Dar clic en la rueda del scroll en el mouse e inmediatamente realiza la copia de lo subrayado
Gracias por el Tip
Gracias funciona de maravilla! :D
Mis apuntes:
Los apuntes a mano siempre tendran su toque especial. ¡Gracias Bro por compartir!
También uso una pequeña libreta para más fácil acceso a repasos en mi caso.
Al usar los comandos git log y git show caí en la cuenta de que en mi caso no me mostraba la información en la misma pantalla del terminal como a Freddy, sino con el visor de archivos del terminal, con lo que era necesario pulsar "q" para salir,
A la hora de usar el comando diff y copiar los hash númericos de cada commit era un poco molesto.
Si alguien tiene este mismo problema, basta cambiar la variable global core.pager, para que utilice el comando cat
git config --global core.pager cat
muchas gracias, brouuu
Ya estaba buscando como hacer esto, Muchas gracias.
A mi no me funcionaba el Esc+Shift+Z+Z. Asi que usé los comandos que aparecen en la parte de abajo: Ctrl+X para salir, después Y para aceptar los cambios y Enter para finalizar.
Gracias por el dato. También debo decir que no me funcionaba el "Esc+Shift+Z+Z" pero era porque en mi teclado hay dos Shift "el de abajo del BLOQ MAYÚS y el de ENTER. Intenté el que está debajo del ENTER y me funcionó :)
tampoco me funcionaba, he estado un buen rato hasta que he visto sus mensajes y me ha funcionado con el shift debajo del enter, el que está debajo de bloq mays no me funcionaba, gracias por comentar la solución
Una lista de los comandos utilizados:
Para mostrar los diferentes estados de los archivos en tu directorio de trabajo y área de ensayo (staging):
git status
Para ver los cambios entre tu entorno de trabajo y tu área de ensayo (staging):
git diff
Para agregar cambios de tu entorno de trabajo a tu área de trabajo (staging):
git add .
Para remover cambios agregados a tu área de trabajo (staging):
git rm --cached <archivo>
Para registrar una nueva instantánea permanente en la base de datos del repositorio.
git commit -m "Comentario"
Traer una imagen de un archivo de una instatánea de la base de datos al entorno de trabajo. Se puede reemplazar el <commit-id> por el nombre de la rama, ejemplo "Master".
git checkout <commit-id><archivo>
Se utiliza sobre todo para deshacer las cosas,
git reset
Presenta un registro de commits de la base de datos.
git log
Lo mismo del punto anterior, pero aplicado a un archivos específico.
git log <archivo>
Presenta los cambios específicos de los archivos a partir del commit. Ante muchos cambios, se usan las fechas "up/donw" para moverse en la pantalla y la tecla "q" para salir.
git log --stat
Importante, a GIT no le interesa la carpetas, solo los archivos. Las carpetas son consideradas rutas de los archivos..
Gracias :)
Muchas gracias por el aporte!!.
Otra forma para grabar en Vim es usar ESC y luego escribir :wq
Me parece más práctico que Shift + z+ z-
Buenísimo. Me sirvió un poquito más que Ctrl Shift ZZ
tambien podes utlizar ESC + x
Estos son algunos comandos que pueden utilizar para salirse del VIM:
:q – quit
:q! – quit without saving, even if modified
:cq – quit always without writing
:wq – write / save the current file and exit
:wq! – write the current file and exit always
:wq (name) – write to file (name) and exit
:wq! (name) – write to the file (name) and exit always, even if modified
ZZ – save the current file if modified, then exit
ZQ – quit and exit without saving
Buen aporte, no me servia el shif +zz
Muy buen aporte. Desconocia totalmente los comandos del editor de texto Vim, serán de gran ayuda. Gracias por compartir.
Para editar un archivo en Vim:
Presionar la tecla I para **entrar ** al modo INSERTAR
Presionar **Esc ** para **salir ** del modo INSERTAR
Escribir :w para **guardar ** los cambios
Escribir :q para **salir ** de Vim
Se pueden omitir los pasos 3 y 4 escribiendo en su lugar :x que lo que hace es guardar y cerrar en un solo paso.
Tambien :wq sirve para guardar y cerrar el archivo en un solo paso.
Me sirvio :x
Mis apuntes de los comandos . junto con su descripción de esta clase
$ git init //inicializar el repositorio
$ git add nombre_de_archivo.extensión //Agregar el archivo al repositorio
$ git commit -m “Mensaje”// Agregamos los cambios para el repositorio
$ git add .// Agregar los cambios de la carpeta en la que nos encontramos agregar todo
$ git status // visualizar cambios
$ git log nombre_de_archivos.extensión //histórico de cambios con detalles
$ git push // Envía a otro repositorio remoto lo que estamos haciendo
$ git pull // traer repositorio remoto
$ ls // Listado de carpetas en donde me encuentro es decir dir en windows
$ pwd // Ubicación actual
$ mkdir // make directory nueva carpeta
$ touch archivo.extensión// Crear archivo vacío
**$ cat archivo.extensión// **Muestra el contenido del archivo
$ history // Historial de comandos utilizados durante esa sesión
$ rm archivo.extensión // Eliminación de archivo
$ comando --help // Ayuda sobre el comando
**$ checkout // **Traer cambios realizado
$ git rm --cached archivo.extensión// Se usa para devolver el archivo que se tiene en ram cuando escribimos git add lo devuelve a estado natural mientra esta en staging
$ git config --list // Muestra la lista de configuración de git
$ git config --list --show-origin// Rutas de acceso a la configuración de git
$ git log archivo.extensión // Muestra la historia del archivo
espero sirva mis apuntes a alguien (y si hay errores me comenta y si falta algo mas) madre mia!! creí que no iba a terminar jajajaja y valla que me es dificil pero no me rindo #NuncaParesdeAprender <3
no me funciona Esc+shift+z+z que sera? no puedo salir de la pantalla :/
Intenta dar a la tecla esc, luego escribes :x y le das enter. Es lo que yo hago
O le puedes dar CTR + S luego CTR + X :D
git show me cambia la vida
cosas que no sabes que necesitas hasta que las encuentras.
Bueniiiisimo
Hay que tener en cuenta que actualmente git show no muestra todos los cambios hechos, sino el último commit enviado. Se puede agregar como parámetro el ID de un commit antiguo (luego del git show) para ver las modificaciones de ese commit específico.
Tienes razon, por defecto "git show" solo mostrar los cambios entre el ultimo commit y el anterior ha este. Pero si queremos saber los cambios de un commit en especifico usamos el Id de ese commit.
Esto justo venía a averiguar porque me preocupaba ver solo el último commit. ¡Gracias por el aporte!
En Ubuntu 18.04 al poner commit sin referencias, en lugar de abrir el editor VIM, me llevó al editor NANO. en ese caso, se escribe directamente. Luego, se guarda con Control + O + Enter , y luego se sale con Control + X
Otra opcion es hacer directamente CTRL+X, esto te preguntaras si quieres guardar los cambios antes de salir, le das Y + Enter y gg izi :)
me paso lo mismo y perdi como 30 minutos de mi vida... debi haber leido este comentario antes
Genial !!! acabo de encontrar como se relacionan los comandos que ejecutamos en la cónsola, con lo que realizamos en la interfaz de Atom.
Vine por cobre y descubir oro.
¡siiii! acabo de compartir una imagen también de esto. ¡Es muy genial!
Alguien sabe por qué me aparecen los dos puntos ' : ' cuando pongo algunos comandos? No entiendo que significa ni como salir para seguir ejecutando otros.
Buenas @belensosa eso pasa cuando hacemos un git log solo presiona la letra "q" y saldrás seguir escribiendo mas comandos.
Sucede cuando la pantalla es muy pequeña para mostrar todo lo que arroja el comando que colocaste, para salir puedes presionar "q" en tu teclado o shift+z+z.
Casi que no salgo, después del intento 50 encuentras la solucion.
(ESC+Shift+Z+Z)```
Héroe.
Con el siguiente comando :
git log --oneline --decorate
Puedes ver los commits y los merge de manera gráfica.
Ademas, por comodidad, git te permite guardar "alias" para que crees tu secuencia de comandos y la puedas usar de manera rápida.
Buenas, no me sale exactamente con esas lineas a pesar de que use el comando para el alias. Habría que hacer algo adicional?
Gracias!
Hola Elias, muy bueno tu aporte, un comentario no mas, en tu comando "git log --oneline --decorate" falta el "--graph" para verlo graficamente. Saludos