"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > `.git-blame-ignore-revs` para ignorar los cambios de formato masivo.

`.git-blame-ignore-revs` para ignorar los cambios de formato masivo.

Publicado el 2024-11-03
Navegar:778

.git-blame-ignore-revs es una característica de Git introducida en la versión 2.23 que le permite ignorar confirmaciones específicas en los resultados de git listening. Esto es particularmente útil para confirmaciones masivas que cambian una gran cantidad de líneas sin alterar la funcionalidad real del código, como cambios de formato, cambios de nombre o aplicación de estándares de codificación en una base de código. Al ignorar estos cambios no funcionales, git listening puede centrarse en ediciones significativas que expliquen el contexto y el razonamiento detrás del código.

Por qué es importante .git-blame-ignore-revs

Cuando usas git listening en un archivo, te muestra qué confirmación cambió por última vez cada línea del archivo, junto con el autor y la marca de tiempo. Esto es útil para rastrear por qué se cambió una línea en particular. Sin embargo, si una gran confirmación que realiza cambios puramente de formato, como aplicar una versión más bonita, es parte del historial, git listening puede señalar esa confirmación en muchas líneas. Esto dificulta encontrar el historial de cambios funcionales real.

Por ejemplo, si su equipo utiliza una herramienta como Prettier o ESLint para reformatear todo el código base, la confirmación resultante podría abarcar miles de líneas de código. Sin .git-blame-ignore-revs, git Blame mostraría que este compromiso es responsable de cada línea afectada, lo que podría oscurecer la historia más significativa detrás de cada línea.

Al usar .git-blame-ignore-revs, puedes decirle a git seek que omita estas confirmaciones y se concentre en los cambios que importan.

Cómo utilizar .git-blame-ignore-revs

Para comprender cómo utilizar esta función, veamos un ejemplo del repositorio de React.

Paso 1: Identificar las confirmaciones de formato masivo

El código fuente de React incluye confirmaciones masivas donde se ejecutaron herramientas como Prettier en todo el proyecto. Aquí hay dos de esas confirmaciones:

`.git-blame-ignore-revs` to ignore bulk formatting changes.

  1. Commit: c998bb1 Mensaje: [compilador] Ejecute de forma más bonita, corrija el ajuste Esta confirmación aplica el formato Prettier en todo el código base, alterando muchas líneas sin cambiar la funcionalidad.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

2. Confirmar: fd2b3e1

Mensaje: Compilador: configuración más bonita de Unfork

Esta confirmación contiene más actualizaciones de la configuración de Prettier, que afectan a todos los archivos .ts y .tsx en el repositorio.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

Estas confirmaciones solo se ocupan del formato y no brindan un contexto significativo al investigar por qué una línea de código se escribió de la forma en que estaba.

Paso 2: Crear el archivo .git-blame-ignore-revs

Para hacer que git Blame ignore estas confirmaciones de formato masivo, podemos crear un archivo .git-blame-ignore-revs en la raíz del repositorio.

  1. Cree el archivo .git-blame-ignore-revs:
touch .git-blame-ignore-revs

2. Agregue los hashes de confirmación relevantes al archivo, explicando por qué se ignora cada confirmación. En este caso, agregaremos las dos confirmaciones que identificamos anteriormente:

# Prettier formatting changes 
c998bb1ed4b3285398c9c7797135d3f060243c6a 
fd2b3e13d330a4559f5aa21462e1cb2cbbcf144b

3. Guarde el archivo .git-blame-ignore-revs en el repositorio. Este archivo se puede versionar junto con su código, lo que permite que todo el equipo use la misma lista de confirmaciones ignoradas.

Paso 3: Configurar Git para usar .git-blame-ignore-revs

Para evitar escribir la opción --ignore-revs-file cada vez que usas git listening, puedes configurar Git para que use automáticamente el archivo .git-blame-ignore-revs.

  1. Establece la configuración a nivel de repositorio:
git config blame.ignoreRevsFile .git-blame-ignore-revs

Esto garantiza que cada vez que alguien ejecute git-culp en este repositorio, Git ignorará automáticamente las confirmaciones enumeradas en .git-blame-ignore-revs.

Paso 4: Ejecutar git listening con las confirmaciones ignoradas

Veamos cómo funciona esto en la práctica. Sin ignorar las confirmaciones de formato masivo, la culpa de git podría mostrar:

$ git blame src/someFile.tsx
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 1) import React from 'react';
fd2b3e13 (Alan 2023-04-01 14:15:30  0200 2) function App() {
c998bb1e (Joe Bloggs 2023-03-15 10:00:00  0200 3)     return 
Hello, world!
; fd2b3e13 (Ben 2023-04-01 14:15:30 0200 4) }

Este resultado indica que el último cambio en las líneas 1 y 3 se debió a la confirmación de formato Prettier (c998bb1e), y las líneas 2 y 4 se modificaron en otra confirmación masiva (fd2b3e13). Dado que se trata de cambios de formato, esto no ayuda a comprender quién introdujo la lógica real detrás de estas líneas.

Después de configurar .git-blame-ignore-revs, ejecutar git listening omitirá las confirmaciones masivas y mostrará el historial real:

$ git blame src/someFile.tsx
a23d9b34 (May 2022-12-01 09:30:00  0200 1) import React from 'react';
b12e45a6 (JJ 2022-12-05 11:45:15  0200 2) function App() {
a23d9b34 (Joe 2022-12-01 09:30:00  0200 3)     return 
Hello, world!
; b12e45a6 (Ram 2022-12-05 11:45:15 0200 4) }

Ahora, git listening atribuye las líneas a las confirmaciones correctas, ignorando los cambios de formato sin importancia. Esto nos brinda información útil y muestra quién realizó los cambios funcionales reales.

Conclusión

La función .git-blame-ignore-revs en Git 2.23 cambia las reglas del juego para proyectos con formato masivo o cambios de estilo. Al configurar un archivo .git-blame-ignore-revs y configurar su repositorio, puede aplicar estándares de codificación, ejecutar herramientas como Prettier o refactorizar código sin preocuparse por contaminar el historial de culpas.

Con este enfoque, su equipo puede mejorar con confianza la calidad y el formato del código sin sacrificar la capacidad de realizar un seguimiento de cambios significativos, lo que garantiza que git listening siga siendo una herramienta valiosa para comprender la historia y el razonamiento detrás de cada línea de código.

Sobre nosotros:

En Think Throo, tenemos la misión de enseñar los conceptos arquitectónicos avanzados de base de código utilizados en proyectos de código abierto.

10 veces tus habilidades de codificación practicando conceptos arquitectónicos avanzados en Next.js/React, aprende las mejores prácticas y crea proyectos de nivel de producción.

Somos de código abierto: https://github.com/thinkthroo/thinkthroo (¡Danos una estrella!)

Mejora las habilidades de tu equipo con nuestros cursos avanzados basados ​​en arquitectura de base de código. Comuníquese con nosotros en [email protected] para obtener más información.

Referencias:

  1. https://github.com/facebook/react/blob/main/.git-blame-ignore-revs

  2. https://gist.github.com/kateinoigakukun/b0bc920e587851bfffa98b9e279175f2

  3. https://github.com/facebook/react/commit/c998bb1ed4b3285398c9c7797135d3f060243c6a

  4. https://moxio.com/blog/ignoring-bulk-change-commits-with-git-blame/



Declaración de liberación Este artículo se reproduce en: https://dev.to/thinkthroo/git-blame-ignore-revs-to-ignore-bulk-formatting-changes-5fee?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3