git blame
git blame: muestra el historial de commits de un archivo línea por línea.
El comando git blame muestra qué commit modificó por última vez cada línea de un archivo, junto con el autor, la fecha y hora, y el número de línea. Es una forma rápida de entender por qué una línea tiene ese aspecto, quién la tocó por última vez o cuándo pudo introducirse una regresión. En vez de revisar cada commit a mano, puedes ir directo al cambio responsable.
La salida se lee de arriba abajo, igual que el propio archivo. Cada línea empieza con un hash de commit abreviado, seguido de la información del autor, la fecha, el número de línea original y, después, el contenido de esa línea en el archivo. Puedes apuntar git blame a un archivo de tu directorio de trabajo o a un commit concreto, por ejemplo HEAD~3, para inspeccionar una versión anterior.
1b2c3d4 (Jane Doe 2024-02-19 12) import React from "react";
5e6f7a8 (Jane Doe 2024-02-20 13) import {Button} from "./Button";
5e6f7a8 (Jane Doe 2024-02-20 14)
9a0b1c2 (Alex Roe 2024-03-01 15) export function Header() \{
9a0b1c2 (Alex Roe 2024-03-01 16) return <Button>Buy tickets</Button>;
9a0b1c2 (Alex Roe 2024-03-01 17) }Casos de uso
- Localizar quién tocó una línea para abrir el commit exacto, leer su mensaje y entender la intención antes de cambiar o revertir código.
- Recopilar contexto rápido sobre archivos que no conoces, como el autor, la fecha y hora, y el número de línea original. Así es más fácil hacer preguntas de seguimiento concretas o repartir trabajo con otras personas del equipo.
- Seguir regresiones o atribuir trabajo combinando el commit señalado por blame con
git showpara ver cuándo entró un fallo, o para copiar los detalles de atribución en revisiones, registros de cambios o documentación.
Ejemplos
Mostrar quién modificó por última vez cada línea de un archivo en el directorio de trabajo actual:
git blame src/components/Header.tsxLimitar la salida a un rango concreto de líneas con la opción -L. El inicio y el final están incluidos:
git blame -L 25,40 src/components/Header.tsxEjecutar blame sobre la versión del archivo que existía hace dos commits:
git blame HEAD~2 -- src/components/Header.tsxEl separador -- es opcional, pero evita que Git confunda la ruta del archivo con el nombre de una revisión.
Incluir el correo electrónico del autor en la salida para facilitar el seguimiento:
git blame --show-email src/components/Header.tsx.gitignoregit checkoutgit configgit taggit worktree