Đoạn xem trước bài giảng

Leyendo el historial: log, diff, show y navegación por el pasado

El historial de un proyecto no es solo un registro, es documentación de decisiones. Aprenderemos a leer el historial de manera informativa: filtrar confirmaciones, ver exactamente qué cambió entre versiones y entender los hashes SHA-1 sin miedo. Además, analizaremos cómo distinguir un 'buen historial' de uno 'basura', lo cual afecta directamente cómo te perciben en el equipo.

hash de confirmación git log git diff
Bạn sẽ học gì trong bài giảng này
  • Podrás leer el historial del repositorio y encontrar rápidamente la confirmación deseada por autor, fecha o palabra clave.
  • Entenderás cómo comparar versiones de archivos en diferentes niveles: directorio de trabajo, índice y confirmación.
  • Aprenderás a escribir mensajes de confirmación siguiendo los estándares de la industria (Conventional Commits).

Phần đầu bài giảng

El historial de commits como diario del proyecto

  • Git log muestra el historial como un diario invertido
  • Cada entrada es una instantánea de cambios
  • Almacena quién, cuándo y qué cambió
  • Permite ver la evolución del código

Imagina que cada vez que guardas cambios en Git, estás haciendo una entrada en un diario de desarrollo. El comando 'git log' muestra estas entradas en orden cronológico inverso, de las más recientes a las más antiguas. Este diario guarda la cronología completa del proyecto: quién, cuándo y qué cambios específicos se realizaron. No es solo una lista de modificaciones, sino una historia viva de la evolución de tu código. La capacidad de leer y analizar este historial es una habilidad clave para el trabajo en equipo. A través del historial de commits puedes ver cómo ha evolucionado el proyecto, qué decisiones se tomaron y por qué. Analicemos con más detalle la estructura de un commit individual.

Leyendo una entrada de commit: hash, autor, fecha

  • commit: identificador único hash
  • Author: quién y cuándo hizo los cambios
  • Date: marca de tiempo del commit
  • Mensaje: qué se cambió exactamente

Observa la salida del comando 'git log'. Cada entrada comienza con una larga cadena de caracteres: este es el hash del commit, su identificador único. A la derecha ves el autor de los cambios y la fecha en que se realizaron. Debajo está el mensaje del commit que el desarrollador escribió al guardar los cambios. Fíjate en el formato: primero va el correo electrónico del autor entre corchetes angulares, luego la marca de tiempo. Estos datos ayudan a entender el contexto de los cambios y, si es necesario, contactar al autor para aclaraciones. Ahora que hemos analizado la estructura de un commit, entendamos qué es un hash y para qué sirve.

#!/bin/bash
cd ~/projects/git-course/
git log -1 --pretty=format:'commit %H%nAuthor: %an <%ae>%nDate:   %ad%n%n    %s'

El hash del commit — tu llave a la historia

  • El hash es una huella digital del commit
  • Depende del contenido y metadatos
  • Cambiar un solo carácter modifica el hash
  • Permite hacer referencia precisa a cualquier versión

El hash del commit no es una cadena aleatoria, sino el resultado de una función criptográfica que convierte el contenido del commit en una cadena única. Si cambias aunque sea un byte en el commit, el hash cambiará completamente. Esto garantiza la integridad del historial de cambios. Conociendo el hash, puedes acceder a cualquier versión del código, como un marcador en un libro. Por ejemplo, el comando 'git checkout' con el hash te llevará al estado del proyecto en ese momento del commit. Esto es especialmente útil cuando necesitas deshacer cambios o analizar cuándo apareció un error. Ahora que entendemos la estructura del historial, aprendamos a filtrarlo — porque en proyectos reales puede haber miles de commits.

Bài giảng đầy đủ dành cho thuê bao

Còn 26 slide nữa trong phiên bản đầy đủ.

Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.

Đăng nhập hoặc đăng ký Đăng ký thuê bao

Nội dung bài giảng

  1. El historial de commits como diario del proyecto
  2. Leyendo una entrada de commit: hash, autor, fecha
  3. El hash del commit — tu llave a la historia
  4. Cómo encontrar commits de un autor
  5. Filtrar por fecha del commit
  6. Búsqueda en el texto de los commits
  7. Combinando filtros
  8. El problema de leer el historial de commits
  9. Visualización compacta con --oneline
  10. Visualización de ramas con --graph
  11. Visión completa con --all
  12. ¿Qué es git diff y para qué sirve?
  13. Comparando cambios en el directorio de trabajo
  14. ¿Qué está preparado para confirmar? git diff --staged
  15. Comparando dos commits cualquiera
  16. Cómo examinar un commit en detalle
  17. Práctica: examinando cambios en un commit
  18. Visualización de un archivo específico en un commit
  19. Búsqueda de cambios recientes en un archivo
  20. Análisis de código ajeno a través del historial
  21. Búsqueda de introducción o eliminación de funciones
  22. Por qué importan los mensajes de commit
  23. Estructura del mensaje de commit ideal
  24. Conventional Commits en la práctica
  25. Refactorizando commits problemáticos
  26. Por qué los commits 'fix' son un antipatrón
  27. Atomicidad de cambios: un commit - una tarea
  28. git add -p: la herramienta salvadora para commits limpios
  29. Resumen y tarea

Bài viết liên quan đến bài học này

Tất cả bài giảng của khóa học

  1. Introducción: Git desde cero hasta desarrollador seguro
  2. Por qué necesitamos Git y por qué es imprescindible para conseguir trabajo
  3. Instalación y configuración: preparando Git para su primer uso
  4. Primer repositorio: init, add, commit y la magia del índice
  5. Leyendo el historial: log, diff, show y navegación por el pasado
  6. Ramas: la realidad paralela de tu código
  7. Deshaciendo cambios: restore, reset, revert — correcto y peligroso
  8. GitHub y repositorios remotos: tu código en la nube
  9. Trabajo en equipo: forks, ramas de características y pull requests
  10. Conflictos de fusión: no entres en pánico, comprende y resuelve
  11. Flujos de trabajo con Git en equipos reales: ¿qué workflow elegir?
  12. Herramientas avanzadas: rebase, stash, cherry-pick y etiquetas
  13. Proyecto final: simulando un desarrollo en equipo real