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.
- 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).
จุดเริ่มต้นของบทเรียน
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.
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 26 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- El historial de commits como diario del proyecto
- Leyendo una entrada de commit: hash, autor, fecha
- El hash del commit — tu llave a la historia
- Cómo encontrar commits de un autor
- Filtrar por fecha del commit
- Búsqueda en el texto de los commits
- Combinando filtros
- El problema de leer el historial de commits
- Visualización compacta con --oneline
- Visualización de ramas con --graph
- Visión completa con --all
- ¿Qué es git diff y para qué sirve?
- Comparando cambios en el directorio de trabajo
- ¿Qué está preparado para confirmar? git diff --staged
- Comparando dos commits cualquiera
- Cómo examinar un commit en detalle
- Práctica: examinando cambios en un commit
- Visualización de un archivo específico en un commit
- Búsqueda de cambios recientes en un archivo
- Análisis de código ajeno a través del historial
- Búsqueda de introducción o eliminación de funciones
- Por qué importan los mensajes de commit
- Estructura del mensaje de commit ideal
- Conventional Commits en la práctica
- Refactorizando commits problemáticos
- Por qué los commits 'fix' son un antipatrón
- Atomicidad de cambios: un commit - una tarea
- git add -p: la herramienta salvadora para commits limpios
- Resumen y tarea
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git log, diff, show และ blame: วิธีอ่านประวัติโปรเจกต์ใน Git
- git bisect: วิธีค้นหาคอมมิตที่ทำให้โค้ดพัง
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
- วิธีติดตั้ง Git บน Windows, macOS และ Linux
บทเรียนทั้งหมดในคอร์สนี้
- Introducción: Git desde cero hasta desarrollador seguro
- Por qué necesitamos Git y por qué es imprescindible para conseguir trabajo
- Instalación y configuración: preparando Git para su primer uso
- Primer repositorio: init, add, commit y la magia del índice
- Leyendo el historial: log, diff, show y navegación por el pasado
- Ramas: la realidad paralela de tu código
- Deshaciendo cambios: restore, reset, revert — correcto y peligroso
- GitHub y repositorios remotos: tu código en la nube
- Trabajo en equipo: forks, ramas de características y pull requests
- Conflictos de fusión: no entres en pánico, comprende y resuelve
- Flujos de trabajo con Git en equipos reales: ¿qué workflow elegir?
- Herramientas avanzadas: rebase, stash, cherry-pick y etiquetas
- Proyecto final: simulando un desarrollo en equipo real