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 bloku
parent: "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 jakogitgraphspowoduje 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_namedziałanie na identyfikatorze typu string, który nie został wcześniej zainicjowany za pomocągałąź branch_namepolecenie natychmiast przerwie budowę grafu. - Kolizje porządkowania gałęzi: Podczas korzystania z
porządektag 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.