Guía de sintaxis del diagrama GitGraph de Mermaid.js

Un diagrama GitGraph es un componente de visualización especializado utilizado por desarrolladores, equipos de DevOps y redactores técnicos para comunicar claramente las estrategias de ramificación de Git, la gestión de lanzamientos y los flujos de trabajo de desarrollo. Integrado nativamente en Mermaid.js, elgitGraphmotor utiliza un modelo de línea de tiempo declarativo y secuencial. Esto asigna directamente los comandos reales de la terminal a un mapa visual de línea de tiempo preciso sin requerir edición manual de imágenes.

Entendiendo la matriz de línea de tiempo GitGraph

A diferencia de los diagramas de flujo de sistemas de forma libre, un diagrama GitGraph sigue una lógica estricta, secuencial y de orden de ocurrencia que modela espacios de trabajo de control de versiones reales:

  • Ramificación raíz automática:Cada espacio de trabajo de diagrama inicializado automáticamente crea una pista principal de línea de tiempo raíz. Por defecto, esta pista se denominamain, y todas las acciones posteriores se rastrean en ella a menos que se cree una ruta de rama alternativa limpia.
  • Precedencia de orden:Los elementos se representan a lo largo de un eje cronológico de izquierda a derecha según el orden de inserción de los comandos en su archivo de código fuente.

Estructura básica de sintaxis

Cada línea de tiempo comienza con la palabra clave en formato camelCasegitGraphpalabra clave de declaración. Le sigue una columna secuencial que enumera comandos de ejecución atómicos, como confirmaciones, comprobaciones y fusiones.

gitGraph
  commit
  commit
  branch feature-login
  checkout feature-login
  commit
  checkout main
  merge feature-login

La referencia completa de comandos de acción de Git

El motor de diseño interpreta comandos de acción específicos en minúsculas para avanzar los pesos de línea, dividir pistas o combinar puntos finales juntos a lo largo de la superficie de trabajo.

Token de comando de Git Modificadores de argumentos de parámetro Comportamiento técnico de acción y diseño
commit id: "hash", type: TYPE, etiqueta: "v1.0" Agrega un nuevo nodo de hito directamente en la línea de ruta de la rama objetivo activa.
rama nombre, orden: Entero Crea una nueva división de carril de rama. Puedes forzar su posición de apilamiento vertical utilizando un explícito opcionalorden valor.
checkout / cambiar nombre-rama Desplaza el puntero del índice de grabación activo hacia la línea de rama objetivo especificada. Las acciones posteriores se rastrean en este carril.
fusionar nombre-rama-objetivo, id: "hash", etiqueta: "v2" Fusiona la rama especificada de nuevo en la rama actual, creando un punto de intersección visual distinto.
cherry-pick id: "hash-commit", padre: "hash-padre" Duplica un commit específico de una rama externa en el carril de rama actual sin mezclar los carriles.

Funcionalidad avanzada: Tipos de confirmación y personalización de etiquetas

Para distinguir entre parches regulares, reintegraciones del sistema o lanzamientos importantes, puedes asignar un explícitotipo y etiquetamodificador de cadena dentro de un bloque de argumentos usando propiedades de clave-valor similares a JSON.

Clasificaciones de forma de confirmación admitidas:

  • tipo: NORMAL: La configuración predeterminada. Se representa como un nodo circular sólido relleno a lo largo de la línea de la cronología.
  • tipo: REVERSE: Destaca una reversión arquitectónica o programática. Se representa como un nodo circular sólido cruzado ($X$).
  • tipo: HIGHLIGHT: Llama la atención sobre alteraciones estructurales críticas o correcciones de seguridad. Se representa como una caja rectangular alargada y rellena.
gitGraph
  commit id: "Inicial"
  commit tipo: HIGHLIGHT id: "Corrección-de-seguridad" etiqueta: "v1.0.1"
  commit tipo: REVERSE id: "Reversión-de-Feature-X"


Característica avanzada: Lógica de cherry-pick y restricciones estrictas

El cherry-pickcomando copia un nodo aislado específico desde una rama diferente a su rama activa actual. Para ejecutar un cherry-pick sin generar errores de diseño del compilador, debe cumplir estos requisitos estrictos de validación del entorno de trabajo:

  • Restricción de exclusión: El ID de confirmación de destino que está realizando cherry-pick *no debe* existir ya en la rama que está rastreando actualmente.
  • Historial previo requerido: La línea actual de la rama activa debe contener al menos un nodo de confirmación válido antes de llamar a una acción de cherry-pick.
  • Requisito de padre de fusión: Si está realizando cherry-pick en un nodo de fusión, debe pasar explícitamente la cadena de identificación del padre inmediato directo utilizando el padre: "hash"bloque de modificador.
gitGraph
  commit id: "configuracion"
  rama staging
  checkout staging
  commit id: "correccion-de-funcionalidad"
  checkout main
  commit id: "base"
  cherry-pick id: "correccion-de-funcionalidad"


Característica avanzada: Configuraciones de parámetros de frontmatter

Puede ajustar con precisión los comportamientos visuales globales (como alternar las etiquetas de ramas, modificar los índices de fila o apilar cronologías) declarando un %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'config': { 'gitGraph': { ... } } } }%% bloque de directivas de configuración en la parte superior absoluta de su script de gráfico.

Matriz de parámetros configurables

Cadena de clave de configuración Definición de tipo Valor predeterminado Resultado de alteración de interfaz visual
showBranches Booleano true Alterna la visibilidad de las etiquetas individuales de seguimiento de ramas en el lado izquierdo de la cuadrícula del lienzo.
showCommitLabel Booleano true Alterna la representación de títulos de texto y hashes alfanuméricos directamente sobre los nodos individuales de la cronología.
mainBranchName Cadena "main" Cambia el texto predeterminado de seguimiento del nombre de la rama raíz inicial (por ejemplo, cambiando a "master" o "trunk").
mainBranchOrder Entero 0 Establece el índice de posición del orden de apilamiento vertical de arriba hacia abajo para la vía principal de seguimiento de cronología raíz.
parallelCommits Booleano falso Si se modifica a verdadero, los commits separados que comparten distancias idénticas de pasos padre se alinean simétricamente en el mismo nivel vertical.

Plantilla del mundo real: Pipeline de gestión de lanzamientos Git-Flow para empresas

Esta plantilla completa para empresas demuestra una canalización estándar de lanzamiento en producción. Sobrescribe los parámetros de configuración para renombrar la vía raíz a trunk, establece una jerarquía de orden fijo de ramas, utiliza múltiples vías de ramificación (develop y feature-auth), ejecuta fusiones, aplica etiquetas personalizadas y despliega formas de commits de alto prioridad resaltadas.

%%{init: { 'gitGraph': { 'mainBranchName': 'trunk', 'showCommitLabel': true } } }%%
gitGraph
  commit id: "Inicial-Core" tag: "v1.0.0"
  commit id: "Configurar-CI"
  branch develop
  checkout develop
  commit id: "Base-Sprint-1"
  branch feature-auth
  checkout feature-auth
  commit id: "Lógica-JWT"
  commit id: "Lógica-MFA" type: HIGHLIGHT
  checkout develop
  merge feature-auth id: "Fusionar-Auth"
  commit id: "Beta-Compilado"
  checkout trunk
  merge develop id: "Lanzamiento-Prod" tag: "v2.0.0"


Errores comunes de sintaxis y limitaciones del sistema

Al compilar gráficos precisos de control de versiones, tenga en cuenta estos parámetros de solución de problemas para evitar errores en el cálculo de disposición:

  • Errores por sensibilidad a mayúsculas y minúsculas: La declaración principal de inicialización debe escribirse en camelCase explícito como gitGraph. Escribirlo todo en minúsculas como gitgraph provocará un fallo de análisis del compilador.
  • Identificadores alfanuméricos sin comillas: Al pasar parámetros personalizados de commits (por ejemplo, id: core_init), los valores que contengan guiones, espacios o puntos *deben* ir entre comillas dobles. Olvidar los bloques de comillas provocará errores de compilación de validación.
  • Destinos de checkout no válidos: Llamar a un cambiar de rama nombre_rama acción sobre una identidad de cadena que no ha sido inicializada previamente usando el rama nombre_rama el comando romperá instantáneamente la construcción del gráfico.
  • Colisiones de orden de ramas: Cuando se utiliza el orden etiqueta de configuración en ramas, asegúrese de que múltiples pistas no se asignen a enteros idénticos a menos que desee trazados de ruta de lienzo superpuestos. Mantenga los números de pista de ramas únicos.
  • Fallas en la separación de espacios: Asegúrese de que existan espacios claros para argumentos al separar propiedades dentro de matrices de parámetros entre paréntesis (por ejemplo, use id: "1", tipo: RESALTADO). Dejar de lado comas o espacios faltantes puede causar excepciones de análisis.
Scroll al inicio