Przewodnik po składni diagramów GitGraph w Mermaid.js

Diagram GitGraph to specjalizowany komponent wizualizacji używany przez programistów, zespoły DevOps i pisarzy technicznych w celu jasnego przedstawienia strategii gałęziowania Git, zarządzania wydaniom i przepływów rozwojowych. Zintegrowany zgodnie z zasadą natywną w Mermaid.js, gitGraph silnik wykorzystuje model sekwencyjny i deklaratywny czasu. Pozwala on na bezpośrednią mapę poleceń terminala z rzeczywistego świata na dokładną wizualną mapę czasu bez konieczności ręcznej edycji obrazu.

Zrozumienie macierzy czasu GitGraph

W przeciwieństwie do swobodnych schematów przepływu systemu, diagram GitGraph przestrzega ściśle sekwencyjnej logiki kolejności zdarzeń, modelując rzeczywiste przestrzenie kontroli wersji:

  • Automatyczne gałęziowanie głównego: Każde przestrzeń robocza diagramu inicjowana automatycznie tworzy główną ścieżkę czasu. Domyślnie ta ścieżka nazywa się main, a wszystkie kolejne działania są śledzone wokół niej, chyba że zostanie utworzona czysta alternatywna ścieżka gałęzi.
  • Priorytet kolejności: Elementy są renderowane wzdłuż osi chronologicznej od lewej do prawej na podstawie kolejności wstawienia poleceń w pliku źródłowym kodu.

Podstawowa struktura składni

Każna linia czasu zaczyna się od słowa w stylu camelCase gitGraph słowo kluczowe deklaracji. Następuje po nim kolumna sekwencyjna wymieniania poleceń wykonywanych atomowo, takich jak zatwierdzenia, przejścia i scalania.

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

Pełny przewodnik po komendach działania Git

Silnik układu interpretuje konkretne polecenia działania w małych literach, aby zmieniać grubość linii, dzielić ścieżki lub łączyć końce razem na płótnie przestrzeni roboczej.

Token komendy Git Modyfikatory argumentów parametrów Zachowanie techniczne działania i układu
commit id: "hash", type: TYPE, tag: "v1.0" Dołącza nowy węzeł里程碑 bezpośrednio do aktywnej linii ścieżki gałęzi docelowej.
gałąź nazwa, kolejność: Liczba całkowita Tworzy nowe rozdzielenie gałęzi. Możesz wymusić jego pozycję pionową stosowania za pomocą opcjonalnego jawnejkolejność wartość.
checkout / przełącz nazwa-gałęzi Przesuwa wskaźnik aktywnej rekordowanej pozycji na określoną linię gałęzi docelowej. Następne działania są śledzone w tej gałęzi.
scal nazwa-gałęzi-docelowej, id: "hash", tag: "v2" Scalanie określonej gałęzi z powrotem do bieżącej gałęzi, tworząc wyraźny wizualnie punkt przecięcia.
cherry-pick id: "hash-commitu", rodzic: "hash-rodzica" Duplikuje określony commit z zewnętrznej gałęzi na bieżącej gałęzi bez łączenia gałęzi.

Zaawansowana funkcja: typy commitów i niestandardowe tagi

Aby odróżnić zwykłe poprawki, cofnięcia systemu lub główne wydania, możesz przypisać jawnytyp i tag modyfikator ciągu wewnątrz bloku argumentów przy użyciu właściwości typu JSON klucz-wartość.

Obsługiwane klasyfikacje kształtu commitów:

  • typ: NORMALNY: Domyślna konfiguracja. Renderuje się jako wypełniony pełny okrąg wzdłuż pasa czasowego.
  • typ: ODWRÓCENIE: Wyróżnia architektoniczne lub programistyczne cofnięcie. Renderuje się jako przekreślony pełny okrąg węzła ($X$).
  • typ: WYRÓŻNIENIE: Zwraca uwagę na krytyczne zmiany strukturalne lub poprawki bezpieczeństwa. Renderuje się jako wydłużony wypełniony prostokąt.
gitGraph
  commit id: "Początkowy"
  commit typ: WYRÓŻNIENIE id: "Poprawka-bezpieczeństwa" tag: "v1.0.1"
  commit typ: ODWRÓCENIE id: "Cofnięcie-Funkcji-X"


Zaawansowana funkcja: Logika wybierania i ścisłe ograniczenia

Polecenie cherry-pick kopiuje określony izolowany węzeł z innego pasa gałęzi na aktualnie aktywną gałąź. Aby wykonać cherry-pick bez powodowania błędów układu kompilatora, musisz spełnić te ścisłe wymagania weryfikacji środowiska pracy:

  • Ograniczenie wykluczenia: Identyfikator commitu docelowego, który wybierasz, *nie może* już istnieć na pasie gałęzi, którą aktualnie śledzisz.
  • Wymagana historia: Bieżąca aktywna linia gałęzi musi zawierać co najmniej jeden ważny węzeł commitu przed wywołaniem akcji cherry-pick.
  • Wymóg rodzica scalenia: Jeśli wybierasz węzeł scalenia, musisz jawnie przekazać ciąg identyfikacji bezpośredniego bezpośredniego rodzica z przodu przy użyciu blokuparent: "hash" modyfikatora.
gitGraph
  commit id: "ustawienie"
  branch staging
  checkout staging
  commit id: "poprawka-funkcji"
  checkout main
  commit id: "bazowy"
  cherry-pick id: "poprawka-funkcji"


Zaawansowana funkcja: Konfiguracje parametrów nagłówka

Można dopasować globalne zachowania wizualne (takie jak przełączanie etykiet gałęzi, modyfikacja indeksów wierszy lub stosowanie przebiegów czasowych) przez zadeklarowanie bloku dyrektywy %%{init: { 'logLevel': 'debug', 'theme': 'default' , 'config': { 'gitGraph': { ... } } } }%% bloku dyrektywy konfiguracyjnej na samym początku skryptu grafu.

Macierz konfigurowalnych parametrów

Ciąg klucza konfiguracji Definicja typu Wartość domyślna Wynik zmiany interfejsu wizualnego
showBranches Wartość logiczna true Przełącza widoczność etykiet śledzenia poszczególnych gałęzi po lewej stronie siatki płótna.
showCommitLabel Wartość logiczna true Przełącza renderowanie tytułów tekstowych i kodów alfanumerycznych bezpośrednio nad poszczególnymi węzłami przebiegu czasowego.
mainBranchName Ciąg znaków "main" Zmienia domyślny tekst śledzenia nazwy głównej gałęzi początkowej (np. zastępowanie przez "master" lub "trunk").
mainBranchOrder Liczba całkowita 0 Ustawia indeks pozycji kolejności stosowania pionowego od góry do dołu dla głównego pasa śledzenia przebiegu czasowego.
parallelCommits Wartość logiczna fałsz Jeśli zmodyfikowane do prawda, osobne commity, które mają identyczne odległości kroków rodzicielskich, są wyrównane symetrycznie na tej samej poziomej płaszczyźnie.

Prawdziwy szablon: Enterprise Git-Flow — Pipeline zarządzania wersjami produkcyjnymi

Ten kompleksowy szablon przedsiębiorstwa demonstruje standardowy pipeline wersji produkcyjnej. Nadpisuje parametry konfiguracji, aby zmienić nazwę głównego kanału na trunk, ustala stałą hierarchię kolejności gałęzi, używa wielu kanałów gałęzi (develop i feature-auth), wykonuje scalania, stosuje niestandardowe znaczniki i wdraża kształty commitów o wysokim priorytecie.

%%{init: { 'gitGraph': { 'mainBranchName': 'trunk', 'showCommitLabel': true } } }%%
gitGraph
  commit id: "Initial-Core" tag: "v1.0.0"
  commit id: "Setup-CI"
  branch develop
  checkout develop
  commit id: "Sprint-1-Base"
  branch feature-auth
  checkout feature-auth
  commit id: "JWT-Logic"
  commit id: "MFA-Logic" type: HIGHLIGHT
  checkout develop
  merge feature-auth id: "Merge-Auth"
  commit id: "Beta-Compiled"
  checkout trunk
  merge develop id: "Release-Prod" tag: "v2.0.0"


Typowe błędy składniowe i ograniczenia systemowe

Podczas kompilowania dokładnych grafów kontroli wersji, pamiętaj o tych parametrach diagnostycznych, aby uniknąć błędów obliczania układu:

  • Błędy wielkości liter: Deklaracja inicjalizacji główna musi być napisana w jawnej formie camelCase jako gitGraph. Pisząc ją całkowicie małymi literami jako gitgraph spowoduje awarię analizy kompilatora.
  • Niepominięte identyfikatory alfanumeryczne: Podczas przekazywania niestandardowych parametrów commitu (np. id: core_init), wartości zawierające myślniki, spacje lub kropki *muszą* być otoczone podwójnymi cudzysłowami. Pominięcie bloków cudzysłowów spowoduje utratę błędów weryfikacji podczas kompilacji.
  • Nieprawidłowe cele wyboru: Wywołanie przejdź do gałęzi branch_name działanie na identyfikatorze typu string, który nie został wcześniej zainicjowany za pomocą gałąź branch_name polecenie natychmiast przerwie budowę grafu.
  • Kolizje porządkowania gałęzi: Podczas korzystania z porządek tag konfiguracji na gałęziach, upewnij się, że wiele ścieżek nie jest mapowanych na identyczne liczby całkowite, chyba że chcesz nakładania śladów ścieżek na płótnie. Zachowaj unikalne numery ścieżek gałęzi.
  • Błędy rozdzielania spacjami: Upewnij się, że istnieją jasne odstępy argumentów podczas rozdzielania właściwości wewnątrz macierzy parametrów w nawiasach (np. użyj id: "1", typ: WYBIELANIE). Pominięcie brakujących przecinków lub odstępów może spowodować wyjątki analizy składni.
Przewijanie do góry