Git diagrama
Git diagrama – tai vaizdinė git commit'ų ir git operacijų skirtingose šakose išraiška.
Git diagramos ypač naudingos kūrėjams ir operacijų komandoms, nes leidžia dalytis savo Git šakų strategija.
Mermaid gali atvaizduoti Git diagramą
Kopijuoti
Įterpti
---
title: Example Git diagram
---
gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
Mermaid palaiko pagrindines git operacijas, pavyzdžiui:
- commit: reiškia naują commit'ą esamoje šakoje.
- branch: sukuriama ir perjungiama į naują šaką, kartu nustatant ją kaip esamą.
- checkout: perjungiama į jau egzistuojančią šaką ir nustatoma kaip esama.
- merge: esama šaka sujungiama su dabartine šaka.
Naudodamiesi šiomis Git operacijomis, galite labai lengvai ir greitai nubraižyti Git diagramą Mermaid aplinkoje. Entity pavadinimai paprastai prasideda didžiąja raide, nors visuotinai priimto standarto tam nėra ir Mermaid jie nėra privalomi.
Pastaba: checkout ir switch gali būti vartojami pakaitomis.
Sintaksė
Git diagramos Mermaid sintaksė labai tiesioginė ir paprasta. Ji taiko deklaratyvų metodą; kiekvienas commit'as braižomas Git diagramos laiko juostoje tokia tvarka, kokia pasirodo kode. Iš esmės laikomasi kiekvienos komandos įterpimo tvarkos.
Pirmiausia deklaruokite diagramos tipą naudodami gitGraph sintaksę. gitGraph sintaksė praneša Mermaid, kad norite braižyti Git diagramą, ir atitinkamai apdoroja diagramos kodą.
Kiekviena Git diagrama inicializuojama su main šaka. Jei nesukuriate kitokių šakų, commit'ai pagal numatytuosius nustatymus patenka į pagrindinę šaką. Tai lemia tai, kaip veikia git – pradžioje visada pradedate nuo pagrindinės šakos. Pagal numatytuosius nustatymus main šaka nustatoma kaip esama šaka.
Galite naudoti commit sintaksę, kad užregistruotumėte commit'ą esamoje šakoje; pažiūrėkime, kaip tai veikia:
Paprasta git diagrama, rodanti tris numatytosios main šakos commit'us:
Kopijuoti
Įterpti
gitGraph
commit
commit
commit
Atidžiau pažvelgę į ankstesnį pavyzdį pamatysite numatytąją main šaką ir tris commit'us. Taip pat atkreipkite dėmesį, kad pagal numatytuosius nustatymus kiekvienam commit'ui suteikiamas unikalus ir atsitiktinis ID.
Tinkinto commit'o ID pridėjimas
Tam tikram commit'ui deklaruodami galite nurodyti tinkintą ID naudodami id savybę, tada pridėti dvitaškį : ir dvigubose kabutėse nurodyti tinkintą reikšmę.
Pažiūrėkime, kaip tai veikia, remiantis toliau esančia diagrama:
Kopijuoti
Įterpti
gitGraph
commit id: "Alpha"
commit id: "Beta"
commit id: "Gamma"
在此示例中,我们给提交分配了自定义 ID。
Commit'o tipo keitimas
Mermaid aplinkoje commit'ai yra trijų tipų, kurie diagramoje atvaizduojami šiek tiek skirtingai. Šie tipai:
- NORMAL: numatytasis commit'o tipas, vaizduojamas pilnu apskritimu
- REVERSE: pabrėžiama, kad commit'as yra atvirkštinis, vaizduojamas perbrauktu pilnu apskritimu.
- HIGHLIGHT: paryškinamas konkretus commit'as, vaizduojamas pilnu stačiakampiu.
Tam tikram commit'ui deklaruodami galite nurodyti jo tipą naudodami type savybę, o po jos – dvitaškį : ir aukščiau aptartą norimą tipo parinktį. Pavyzdžiui: commit type:
Pastaba: jei commit'o tipas nenurodytas, pagal numatytuosius nustatymus pasirenkamas NORMAL
Pažiūrėkime toliau esančioje diagramoje, kaip atrodo šie skirtingų tipų commit'ai:
Kopijuoti
Įterpti
gitGraph
commit id: "Normal"
commit
commit id: "Reverse" type: REVERSE
commit
commit id: "Highlight" type: HIGHLIGHT
commit
Šiame pavyzdyje kiekvienam commit'ui nurodėme skirtingą tipą. Taip pat pažiūrėkite, kaip deklaruodami commit'ą vienu metu įtraukėme ir id, ir type.
Žymos pridėjimas
Tam tikram commit'ui galite pridėti žymą (tag), panašiai kaip git world žymos ar išleidimo versijos koncepciją. Deklaruodami commit'ą galite pridėti tinkintą žymą naudodami tag savybę, po kurios eina dvitaškis :, ir dvigubose kabutėse nurodyti tinkintą reikšmę.
Kopijuoti
Įterpti
gitGraph
commit
commit id: "Normal" tag: "v1.0.0"
commit
commit id: "Reverse" type: REVERSE tag: "RC_1"
commit
commit id: "Highlight" type: HIGHLIGHT tag: "8.8.4"
commit
Šiame pavyzdyje commit'ui nustatėme tinkintą žymą.
Naujos šakos kūrimas
Mermaid aplinkoje, norėdami sukurti naują šaką, galite naudoti branch sintaksę. Taip pat turite pateikti naujos šakos pavadinimą. Pavadinimas turi būti unikalus ir negali būti esamos šakos pavadinimas.
Kai Mermaid nuskaito branch sintaksę, ji sukuria naują šaką ir nustato ją kaip esamą. Tai atitinka naujos šakos sukūrimą Git diagramoje ir perjungimą į ją.
Kopijuoti
Įterpti
gitGraph
commit
commit
branch develop
commit
commit
commit
Šiame pavyzdyje matote, kaip pradėjome nuo numatytosios main šakos ir į ją įtraukėme du commit'us. Tada sukūrėme develop šaką, o visi tolesni commit'ai buvo dedami į develop šaką, nes ji tapo esama.
Esamos šakos išgavimas
Mermaid aplinkoje, norėdami perjungti į esamą šaką, galite naudoti checkout sintaksę; taip pat turite pateikti esamos šakos pavadinimą. Jei šaka nurodytu pavadinimu nerandama, atsiranda konsolės klaida. Naudojimo pavyzdys: checkout develop
Kai Mermaid nuskaito checkout sintaksę, ji randa nurodyto pavadinimo šaką ir nustato ją kaip esamą. Tai atitinka šakos išgavimą Git aplinkoje.
Kopijuoti
Įterpti
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
commit
Šiame pavyzdyje pirmiausia pradėjome nuo numatytosios main šakos ir į ją įtraukėme du commit'us. Tada sukūrėme develop šaką, o visi trys commit'ai buvo dedami į develop šaką, nes ji tapo esama. Vėliau naudodami checkout sintaksę nustatėme esamą šaką kaip main, o visi tolesni commit'ai buvo registruojami main šakoje.
Dviejų šakų sujungimas
Mermaid aplinkoje, norėdami sujungti su esama šaka arba prie jos prisijungti, turite naudoti merge sintaksę. Taip pat turite pateikti esamos šakos, kurią norite sujungti, pavadinimą. Jei šaka nurodytu pavadinimu nerandama, konsolėje rodoma klaida. Be to, galite sujungti tik dvi atskiras šakas; negalima sujungti šakos su pačia savimi.
Sintaksės pavyzdys: merge develop
Kai Mermaid nuskaito merge sintaksę, ji randa nurodytą šaką ir jos paskutinį commit'ą bei sujungia jį su dabartinės šakos paskutiniu commit'u. Vaizduojama pilnu dvigubu apskritimu.
Toliau pateikiamas dviejų šakų sujungimo pavyzdys:
Kopijuoti
Įterpti
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
commit
merge develop
commit
commit
Šiame pavyzdyje pirmiausia pradedama nuo main šakos ir į ją įtraukiami du commit'ai. Tada sukuriama develop šaka, o į develop šaką įtraukiami trys commit'ai. Vėliau naudodami checkout sintaksę nustatome esamą šaką kaip main, o visi tolesni commit'ai atliekami main šakoje. Galiausiai sujungiame develop šaką su main šaka, taip sukuriant sujungimo commit'ą. Kadangi tuo metu esama šaka vis dar yra main, paskutiniai du commit'ai registruojami toje šakoje.
Taip pat galite prie sujungimo pridėti panašių atributų:
- id pakeičia numatytąjį ID tinkintu ID
- tag prideda tinkintą žymą prie sujungimo commit'o
- type pakeičia numatytąjį sujungimo commit'o tipą. Galite naudoti kitus anksčiau minėtus commit'o tipus.
Kopijuoti
Įterpti
gitGraph
commit id: "1"
commit id: "2"
branch nice_feature
checkout nice_feature
commit id: "3"
checkout main
commit id: "4"
checkout nice_feature
branch very_nice_feature
checkout very_nice_feature
commit id: "5"
checkout main
commit id: "6"
checkout nice_feature
commit id: "7"
checkout main
merge nice_feature id: "customID" tag: "customTag" type: REVERSE
checkout very_nice_feature
commit id: "8"
checkout main
commit id: "9"
Atrankinis commit'ų sujungimas iš kitos šakos
Mermaid palaiko vieno commit'o perkėlimą iš kitos šakos į dabartinę šaką. Taip pat galite naudoti cherry-pick sintaksę commit'ams iš kitos šakos perkelti.
Norėdami naudoti cherry-pick sintaksę, turite nurodyti id naudodami id savybę, o po dvitaškio : parašyti norimą commit'o id ir apgaubti jį dvigubomis kabutėmis. Pavyzdžiui:
Štai keletas svarbių taisyklių, į kurias reikia atkreipti dėmesį:
- Turite pateikti id, kad galėtumėte pasirinkti esamą commit'ą. Jei nurodytas commit'o ID neegzistuoja, atsiranda klaida. Tam naudokite formatą commit id:$value commit'ui deklaruoti.
- Nurodytas commit'as neturi egzistuoti dabartinėje šakoje; perkeliamas commit'as visada turi būti iš šakos, besiskiriančios nuo dabartinės šakos.
- Dabartinė šaka turi turėti bent vieną commit'ą, kad būtų galima atlikti cherry-pick, kitaip atsiras klaida.
- Perkeliant sujungimo commit'ą, būtina pateikti tėvinio commit'o ID. Jei praleidžiama tėvinė savybė arba pateikiamas negaliojantis tėvinio commit'o ID, išmetama klaida.
- Nurodytas tėvinis commit'as turi būti tiesioginis perkeliamo sujungimo commit'o tėvinis commit'as.
Kopijuoti
Įterpti
gitGraph
commit id: "ZERO"
branch develop
branch release
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
merge develop id:"MERGE"
commit id:"TWO"
checkout release
cherry-pick id:"MERGE" parent:"B"
commit id:"THREE"
checkout develop
commit id:"C"
Konkrečios konfigūracijos parinktys
Mermaid Git diagramoje galite konfigūruoti šias parinktis:
- showBranches: loginė reikšmė, numatytoji – true. Jei nustatyta false, šakos nerodomos.
- showCommitLabel: loginė reikšmė, numatytoji – true. Jei nustatyta false, commit'ų žymos nerodomos.
- mainBranchName: eilutė, numatytoji – main. Numatytosios šakos pavadinimas.
- mainBranchOrder: pagrindinės šakos vieta šakų sąraše. Numatytoji – 0, o tai reiškia, kad pagal numatytuosius nustatymus main šaka yra pirmoje vietoje.
- parallelCommits: loginė reikšmė, numatytoji – false. Jei nustatyta true, commit'ai, nutolę nuo tėvinio, bus rodomi tame pačiame lygmenyje.
Šakų pavadinimų ir jungiamųjų linijų slėpimas
Kartais galite norėti paslėpti šakų pavadinimus ir jungiamąsias linijas. Tai galite atlikti naudodami showBranches sintaksę. Pagal numatytuosius nustatymus jos reikšmė yra true; naudodami komandą galite ją nustatyti į false.
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
showBranches: false
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Commit'ų žymų išdėstymas: pasuktas arba horizontalus
Mermaid palaiko dviejų tipų commit'ų žymų išdėstymą. Numatytasis išdėstymas yra pasuktas, t. y. žyma dedama po commit'o apskritimu ir pasukama 45 laipsniais, kad būtų geriau skaitoma. Tai ypač naudinga commit'ams su ilgomis žymomis.
Kitas tipas – horizontalus, t. y. žyma dedama po commit'o apskritimu ir rodoma horizontaliai centruota, nepasukta. Tai ypač naudinga commit'ams su trumpomis žymomis.
Galite pakeisti commit'ų žymų išdėstymą komandoje naudodami rotateCommitLabel sintaksę. Jos numatytoji reikšmė yra true, o tai reiškia, kad commit'ų žymos sukamos.
Naudojimo pavyzdys: pasuktos commit'ų žymos
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
rotateCommitLabel: true
---
gitGraph
commit id: "feat(api): ..."
commit id: "a"
commit id: "b"
commit id: "fix(client): .extra long label.."
branch c2
commit id: "feat(modules): ..."
commit id: "test(client): ..."
checkout main
commit id: "fix(api): ..."
commit id: "ci: ..."
branch b1
commit
branch b2
commit
Naudojimo pavyzdys: horizontalios commit'ų žymos
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
rotateCommitLabel: false
---
gitGraph
commit id: "feat(api): ..."
commit id: "a"
commit id: "b"
commit id: "fix(client): .extra long label.."
branch c2
commit id: "feat(modules): ..."
commit id: "test(client): ..."
checkout main
commit id: "fix(api): ..."
commit id: "ci: ..."
branch b1
commit
branch b2
commit
Commit'ų žymų slėpimas
Kartais galite norėti paslėpti commit'ų žymas. Tai galite atlikti naudodami showCommitLabel sintaksę. Pagal numatytuosius nustatymus jos reikšmė yra true; naudodami komandą galite ją nustatyti į false.
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
showBranches: false
showCommitLabel: false
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Tinkintas pagrindinės šakos pavadinimas
Kartais galite norėti tinkinti pagrindinės šakos pavadinimą. Tai galite atlikti naudodami mainBranchName sintaksę. Pagal numatytuosius nustatymus jos reikšmė yra main; naudodami komandą galite ją nustatyti į bet kurią eilutę.
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
showBranches: true
showCommitLabel: true
mainBranchName: 'MetroLine1'
---
gitGraph
commit id:"NewYork"
commit id:"Dallas"
branch MetroLine2
commit id:"LosAngeles"
commit id:"Chicago"
commit id:"Houston"
branch MetroLine3
commit id:"Phoenix"
commit type: HIGHLIGHT id:"Denver"
commit id:"Boston"
checkout MetroLine1
commit id:"Atlanta"
merge MetroLine3
commit id:"Miami"
commit id:"Washington"
merge MetroLine2 tag:"MY JUNCTION"
commit id:"Boston"
commit id:"Detroit"
commit type:REVERSE id:"SanFrancisco"
Pažvelkite į virtualią metro linijos diagramą, sukurtą naudojant Mermaid. Čia numatytąjį pagrindinės šakos pavadinimą pakeitėme į MetroLine1.
Tinkinta šakų eilė
Mermaid aplinkoje pagal numatytuosius nustatymus šakos rodomos tokia tvarka, kokia buvo apibrėžtos ar pasirodė diagramos kode.
Kartais galite norėti tinkinti šakų eilę. Tai galite padaryti prie šakos apibrėžimo naudodami order sintaksę, kurią galite nustatyti į teigiamą skaičių.
Mermaid laikosi order sintaksės nurodytos pirmumo eilės.
- Pagrindinė šaka visada rodoma pirma, nes jos numatytoji eilės reikšmė yra 0. (Nebent jos eilė buvo pakeista naudojant mainBranchOrder sintaksę konfigūracijoje ir pakeista nuo 0.)
- Toliau visos šakos be order bus rodomos tokia tvarka, kokia pasirodo diagramos kode.
- Toliau visos šakos su order bus rodomos pagal savo order reikšmių eilę.
Norint visiškai kontroliuoti visų šakų eilę, visoms šakoms būtina apibrėžti order.
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
showBranches: true
showCommitLabel: true
---
gitGraph
commit
branch test1 order: 3
branch test2 order: 2
branch test3 order: 1
Aukščiau esančioje diagramoje visos šakos laikosi apibrėžtos eilės.
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
gitGraph:
showBranches: true
showCommitLabel: true
mainBranchOrder: 2
---
gitGraph
commit
branch test1 order: 3
branch test2
branch test3
branch test4 order: 1
Aukščiau esančioje diagramoje visos šakos be nurodytos eilės braižomos apibrėžta tvarka. Vėliau nubraižoma test4 šaka, nes jos eilė yra 1. Tada nubraižoma main šaka, nes jos eilė yra 2. Galiausiai nubraižoma test1 šaka, nes jos eilė yra 3.
Pastaba: kadangi pakeitėme mainBranchOrder į 2, main šaka nebus braižoma pradžioje, o rodoma pagal eilę.
Čia numatytąjį pagrindinės šakos pavadinimą pakeitėme į MetroLine1.
Kryptis
Mermaid palaiko tris kryptis: iš kairės į dešinę (numatytoji), iš viršaus į apačią ir iš apačios į viršų.
Iš kairės į dešinę (numatytoji, LR:)
Mermaid aplinkoje numatytoji kryptis yra iš kairės į dešinę, o šakos sukraunamos viena ant kitos.
Tačiau šią reikšmę galite aiškiai nustatyti po gitGraph sintaksės naudodami LR:.
Kopijuoti
Įterpti
gitGraph LR:
commit
commit
branch develop
commit
commit
checkout main
commit
commit
merge develop
commit
commit
Iš viršaus į apačią (TB:)
Iš viršaus į apačią kryptimi commit'ai eina nuo diagramos viršaus iki apačios, o šakos išdėstomos viena šalia kitos.
Norėdami orientuoti diagramą šia kryptimi, po gitGraph sintaksės turite pridėti TB:.
Kopijuoti
Įterpti
gitGraph TB:
commit
commit
branch develop
commit
commit
checkout main
commit
commit
merge develop
commit
commit
Iš apačios į viršų (BT:)
Iš apačios į viršų kryptimi commit'ai eina nuo diagramos apačios iki viršaus, o šakos išdėstomos viena šalia kitos.
Norėdami orientuoti diagramą šia kryptimi, po gitGraph sintaksės turite pridėti BT:.
Kopijuoti
Įterpti
gitGraph BT:
commit
commit
branch develop
commit
commit
checkout main
commit
commit
merge develop
commit
commit
Laikini commit'ai (parallelCommits: false)
Kopijuoti
Įterpti
---
config:
gitGraph:
parallelCommits: false
---
gitGraph:
commit
branch develop
commit
commit
checkout main
commit
commit
Lygiagretūs commit'ai (parallelCommits: true)
Kopijuoti
Įterpti
---
config:
gitGraph:
parallelCommits: true
---
gitGraph:
commit
branch develop
commit
commit
checkout main
commit
commit
Tema
Mermaid palaiko daugybę tinkintų temų, kurias galite naudoti norėdami rasti tinkamą sau. Pastaba: iš tiesų galite pakeisti esamos temos kintamuosius ir sukurti savo tinkintą temą.
Toliau pateikiamos skirtingos tinkintų temų parinktys:
- redux-color
- redux-dark-color
- redux
- redux-dark
- default
- neutral
- dark
- forest
- neo
- neo-dark
- base
Norėdami pakeisti temą, galite naudoti initialize sintaksę.
Bazinė tema
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'base'
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Miško tema
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'forest'
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Numatytoji tema
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
---
gitGraph
commit type:HIGHLIGHT
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Tamsioji tema
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'dark'
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Neutralioji tema
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'neutral'
---
gitGraph
commit
branch hotfix
checkout hotfix
commit
branch develop
checkout develop
commit id:"ash" tag:"abc"
branch featureB
checkout featureB
commit type:HIGHLIGHT
checkout main
checkout hotfix
commit type:NORMAL
checkout develop
commit type:REVERSE
checkout featureB
commit
checkout main
merge hotfix
checkout featureB
commit
checkout develop
branch featureA
commit
checkout develop
merge hotfix
checkout featureA
commit
checkout featureB
commit
checkout develop
merge featureA
branch release
checkout release
commit
checkout main
commit
checkout release
merge main
checkout develop
merge release
Tinkinimas naudojant temos kintamuosius
Mermaid leidžia tinkinti diagramą naudojant temos kintamuosius, kurie kontroliuoja atskirų diagramos elementų išvaizdą ir stilių.
Kad būtų aiškiau, paimkime temą default kaip pavyzdį; temos kintamųjų numatytosios reikšmės automatiškai paimamos iš temos.
Naudojant default temą šakų spalvai nustatyti:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
Mermaid palaiko temos kintamuosius, naudojamus numatytosioms reikšmėms pakeisti, daugiausia iki 8 šakų, t. y. temos kintamaisiais galite nustatyti iki 8 šakų spalvas. Viršijus 8 šakas, temos kintamieji naudojami pakartotinai cikliškai, t. y. devintoji šaka naudos pirmosios šakos stilių.
Tinkinta šakų spalva
Galite tinkinti šakų spalvas naudodami git0–git7 temos kintamuosius. Mermaid leidžia nustatyti iki 8 šakų spalvas; git0 kintamasis kontroliuoja pirmosios šakos spalvą, git1 – antrosios šakos spalvą ir taip toliau.
Pastaba: šių temos kintamųjų numatytosios reikšmės paimamos iš pasirinktos temos. Jei norite pakeisti numatytąsias reikšmes, galite naudoti initialize sintaksę tinkintoms temos kintamųjų reikšmėms pridėti.
Pavyzdys:
Dabar pakeiskime numatytąsias git0–git3 kintamųjų reikšmes:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
'git0': '#ff0000'
'git1': '#00ff00'
'git2': '#0000ff'
'git3': '#ff00ff'
'git4': '#00ffff'
'git5': '#ffff00'
'git6': '#ff00ff'
'git7': '#00ffff'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
Tinkinta šakų žymų spalva
Galite tinkinti šakų žymų spalvas naudodami gitBranchLabel0–gitBranchLabel7 temos kintamuosius. Mermaid leidžia nustatyti iki 8 šakų spalvas; gitBranchLabel0 kintamasis kontroliuoja pirmosios šakos žymos spalvą, gitBranchLabel1 kintamasis – antrosios šakos žymos spalvą ir taip toliau.
Pažiūrėkime, kaip naudodami default temą nustatyti šakų žymų spalvą:
Dabar pakeiskime numatytąsias gitBranchLabel0–gitBranchLabel2 kintamųjų reikšmes:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
'gitBranchLabel0': '#ffffff'
'gitBranchLabel1': '#ffffff'
'gitBranchLabel2': '#ffffff'
'gitBranchLabel3': '#ffffff'
'gitBranchLabel4': '#ffffff'
'gitBranchLabel5': '#ffffff'
'gitBranchLabel6': '#ffffff'
'gitBranchLabel7': '#ffffff'
'gitBranchLabel8': '#ffffff'
'gitBranchLabel9': '#ffffff'
---
gitGraph
checkout main
branch branch1
branch branch2
branch branch3
branch branch4
branch branch5
branch branch6
branch branch7
branch branch8
branch branch9
checkout branch1
commit
Čia matote, kad branch8 ir branch9 spalvos ir stilius atitinkamai paimti iš šakų, kurių indekso vietos yra 0 (main) ir 1 (branch1).
Tinkinta commit'ų spalva
Galite naudoti commitLabelColor ir commitLabelBackground temos kintamuosius, kad atskirai tinkintumėte commit'ų žymų spalvą ir fono spalvą.
Pavyzdys: dabar pakeiskime numatytąsias commitLabelColor ir commitLabelBackground kintamųjų reikšmes:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
commitLabelColor: '#ff0000'
commitLabelBackground: '#00ff00'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
mermaid.grammar_mermaid_commit_label_define_label_font_big_small
Galite naudoti commitLabelFontSize temos kintamąjį, kad tinkintumėte commit'ų žymų šrifto dydį.
Pavyzdys: dabar pakeiskime numatytąją commitLabelFontSize kintamojo reikšmę:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
commitLabelColor: '#ff0000'
commitLabelBackground: '#00ff00'
commitLabelFontSize: '16px'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
Tinkintas žymos šrifto dydis
Galite naudoti tagLabelFontSize temos kintamąjį, kad tinkintumėte žymos šrifto dydį.
Pavyzdys: dabar pakeiskime numatytąją tagLabelFontSize kintamojo reikšmę:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
commitLabelColor: '#ff0000'
commitLabelBackground: '#00ff00'
tagLabelFontSize: '16px'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
Tinkinta žymos spalva
Galite naudoti tagLabelColor, tagLabelBackground ir tagLabelBorder temos kintamuosius, kad tinkintumėte žymą, atitinkamai pakeisdami žymos teksto spalvą, žymos fono spalvą ir žymos rėmelį.
Pavyzdys: dabar pakeiskime numatytąsias tagLabelColor, tagLabelBackground ir tagLabelBorder kintamųjų reikšmes:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
tagLabelColor: '#ff0000'
tagLabelBackground: '#00ff00'
tagLabelBorder: '#0000ff'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit
Tinkinta paryškintų commit'ų spalva
Galite tinkinti paryškintų commit'ų spalvą pagal šaką, kurioje jie yra, naudodami gitInv0–gitInv7 temos kintamuosius. Mermaid leidžia nustatyti konkrečių paryškintų commit'ų spalvas iki 8 šakų; gitInv0 kintamasis kontroliuoja pirmosios šakos paryškinto commit'o spalvą, gitInv1 kintamasis – antrosios šakos paryškinto commit'o spalvą ir taip toliau.
Dabar pakeiskime numatytąsias git0–git3 kintamųjų reikšmes:
Kopijuoti
Įterpti
---
config:
logLevel: 'debug'
theme: 'default'
themeVariables:
'gitInv0': '#ff0000'
---
gitGraph
commit
branch develop
commit tag:"v1.0.0"
commit
checkout main
commit type: HIGHLIGHT
commit
merge develop
commit
branch featureA
commit