एक जीटीग्राफ डायग्राम विशेषज्ञ दृश्य प्रकार का घटक है जिसका उपयोग डेवलपर्स, डेवोप्स टीमें और तकनीकी लेखक जीटी शाखा रणनीतियों, रिलीज प्रबंधन और विकास प्रवाह को स्पष्ट रूप से संचारित करने के लिए करते हैं। मेरमेड.जीएस में निर्मित रूप से एकीकृत, यहजीटीग्राफइंजन एक घोषित, क्रमबद्ध समय रेखा मॉडल का उपयोग करता है। इससे वास्तविक दुनिया के टर्मिनल कमांड्स को बिना हस्तचालित छवि संपादन के सटीक दृश्य समय रेखा मानचित्र में सीधे मैप किया जाता है।
जीटीग्राफ समय रेखा मैट्रिक्स को समझना
मुक्त रूप से बनाए गए सिस्टम फ्लोचार्ट्स के विपरीत, एक जीटीग्राफ डायग्राम वास्तविक संस्करण नियंत्रण कार्यस्थलों के मॉडलिंग के लिए सख्त, क्रमबद्ध, घटना के क्रम के तर्क का पालन करता है:
- स्वचालित मूल शाखा बनाना: प्रत्येक डायग्राम कार्यस्थल को ऑटोमैटिक रूप से प्राथमिक मूल समय रेखा ट्रैक बनाया जाता है। डिफ़ॉल्ट रूप से, इस ट्रैक का नाम है
मुख्य, और सभी बाद के क्रियाकलाप इसके खिलाफ ट्रैक करते हैं जब तक कि एक साफ वैकल्पिक शाखा पथ नहीं बनाया जाता है। - क्रम प्राथमिकता: तत्व आपकी कोड स्रोत फ़ाइल में कमांड्स के सम्मिलन क्रम के आधार पर बाएं से दाएं तक क्रमबद्ध अक्ष के साथ रेंडर होते हैं।
बेसिक सिंटैक्स संरचना
प्रत्येक समय रेखा कैमल केस के साथ शुरू होती हैजीटीग्राफ घोषणा की शब्दावली। इसके बाद एटॉमिक निष्पादन कमांड्स की क्रमबद्ध स्तंभ सूची होती है जैसे कि कमिट्स, चेकआउट्स और मर्जेस।
जीटीग्राफ
कमिट
कमिट
शाखा फीचर-लॉगिन
चेकआउट फीचर-लॉगिन
कमिट
चेकआउट मुख्य
मर्ज फीचर-लॉगिन 
पूर्ण जीटी क्रिया कमांड संदर्भ
लेआउट इंजन विशिष्ट, छोटे अक्षरों वाले क्रिया कमांड्स को समझता है ताकि लाइन वजन, ट्रैक्स को विभाजित करने या कार्यस्थल कैनवास पर एंडपॉइंट्स को एक साथ मिलाने में आगे बढ़ाया जा सके।
| जीटी कमांड टोकन | पैरामीटर आर्ग्युमेंट संशोधक | तकनीकी क्रिया और लेआउट व्यवहार |
|---|---|---|
कमिट |
आईडी: "हैश", प्रकार: प्रकार, टैग: "v1.0" |
सक्रिय लक्ष्य शाखा मार्ग रेखा पर सीधे एक नया मील का पत्थर नोड जोड़ता है। |
शाखा |
नाम, क्रम: पूर्णांक |
एक नई शाखा लेन स्प्लिट बनाता है। आप एक वैकल्पिक स्पष्ट उपयोग करके इसकी ऊर्ध्वाधर स्टैकिंग स्थिति को बाध्य कर सकते हैंक्रम मान। |
चेकआउट / स्विच |
शाखा-नाम |
सक्रिय रिकॉर्डिंग इंडेक्स पॉइंटर को निर्दिष्ट लक्ष्य शाखा रेखा पर स्थानांतरित करता है। बाद की क्रियाएँ इस लेन के खिलाफ ट्रैक करती हैं। |
मर्ज |
लक्ष्य-शाखा-नाम, आईडी: "हैश", टैग: "v2" |
निर्दिष्ट शाखा लेन को वर्तमान शाखा में वापस मर्ज करता है, एक अलग दृश्य ब्लेंडिंग प्रतिच्छेदन बिंदु बनाता है। |
चेरी-पिक |
आईडी: "कॉमिट-हैश", पैरेंट: "पैरेंट-हैश" |
किसी बाहरी शाखा से एक विशिष्ट कॉमिट की नकल वर्तमान शाखा लेन पर करता है, बिना लेन को मिलाए। |
उन्नत विशेषता: कॉमिट प्रकार और टैग कस्टमाइज़ेशन
नियमित पैच, सिस्टम रोलबैक या महत्वपूर्ण रिलीज के बीच अंतर करने के लिए, आप एक स्पष्ट निर्दिष्ट कर सकते हैंप्रकारऔरटैग जेसॉन-जैसे की-वैल्यू गुणों का उपयोग करते हुए एक आर्ग्युमेंट ब्लॉक के भीतर स्ट्रिंग मॉडिफायर।
समर्थित कॉमिट शेप वर्गीकरण:
प्रकार: सामान्य: डिफ़ॉल्ट कॉन्फ़िगरेशन। समय रेखा लेन में एक भरी हुई ठोस गोलाकार नोड के रूप में प्रदर्शित करता है।प्रकार: विपरीत: संरचनात्मक या कार्यक्रमात्मक रिवर्सल को उजागर करता है। एक प्रतिच्छेदित ठोस गोलाकार नोड ($X$) के रूप में प्रदर्शित करता है।प्रकार: हाइलाइट: महत्वपूर्ण संरचनात्मक परिवर्तनों या सुरक्षा ठीक करने के लिए ध्यान आकर्षित करता है। एक लंबी, भरी हुई आयताकार बॉक्स के रूप में प्रदर्शित करता है।
gitGraph
कॉमिट आईडी: "प्रारंभिक"
कॉमिट प्रकार: हाइलाइट आईडी: "सुरक्षा-हॉटफिक्स" टैग: "v1.0.1"
कॉमिट प्रकार: विपरीत आईडी: "रोलबैक-फीचर-एक्स" 
उन्नत विशेषता: चेरी-पिक लॉजिक और सख्त सीमाएँ
द चेरी-पिक कमांड एक अलग ब्रांच लेन से एक विशिष्ट अलग नोड को आपकी वर्तमान सक्रिय ब्रांच पर कॉपी करता है। चेरी-पिक निष्पादित करने के लिए कंपाइलर लेआउट त्रुटियों के बिना, आपको इन सख्त वर्कस्पेस सत्यापन आवश्यकताओं का पालन करना होगा:
- अपवाह सीमा: लक्षित कॉमिट आईडी जिसे आप चेरी-पिक कर रहे हैं *को नहीं* होना चाहिए वह ब्रांच लेन पर पहले से मौजूद हो जिसे आप वर्तमान में ट्रैक कर रहे हैं।
- पूर्व शर्त इतिहास: वर्तमान सक्रिय ब्रांच लाइन में चेरी-पिक क्रिया के पहले कम से कम एक वैध कॉमिट नोड होना चाहिए।
- मर्ज पैरेंट आवश्यकता: यदि आप मर्ज नोड को चेरी-पिक कर रहे हैं, तो आपको सीधे ऊपरी बाएं ओर पैरेंट पहचान प्रतीक को स्पष्ट रूप से पास करना होगा, जिसका उपयोग करते हुए
पैरेंट: "हैश"मॉडिफायर ब्लॉक।
gitGraph
कॉमिट आईडी: "सेटअप"
ब्रांच स्टेजिंग
चेकआउट स्टेजिंग
कॉमिट आईडी: "फीचर-पैच"
चेकआउट मेन
कॉमिट आईडी: "बेसलाइन"
चेरी-पिक आईडी: "फीचर-पैच" 
उन्नत विशेषता: फ्रंटमैटर पैरामीटर कॉन्फ़िगरेशन
आप एक घोषणा करके सामान्य दृश्य व्यवहार (जैसे शाखा लेबल टॉगल करना, पंक्ति सूचकांक संशोधित करना, या समय रेखाओं को ढेर करना) को बेहतर बना सकते हैं%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'config': { 'gitGraph': { ... } } } }%% आपके ग्राफ स्क्रिप्ट के बिल्कुल शीर्ष पर एक विन्यास निर्देश ब्लॉक
संयोज्य पैरामीटर मैट्रिक्स
| विन्यास की कुंजी स्ट्रिंग | प्रकार परिभाषा | डिफ़ॉल्ट मान | दृश्य इंटरफ़ेस परिवर्तन परिणाम |
|---|---|---|---|
showBranches |
बूलियन | सत्य |
कैनवास ग्रिड के बाएं ओर व्यक्तिगत शाखा ट्रैकिंग लेबल की दृश्यता को टॉगल करता है। |
showCommitLabel |
बूलियन | सत्य |
व्यक्तिगत समय रेखा नोड्स के ठीक ऊपर टेक्स्ट शीर्षक और अल्फ़ान्यूमेरिक हैश के रेंडरिंग को टॉगल करता है। |
mainBranchName |
स्ट्रिंग | "main" |
डिफ़ॉल्ट शुरुआती मुख्य शाखा नाम ट्रैकिंग पाठ को बदलता है (उदाहरण के लिए, "master" या "trunk"). |
mainBranchOrder |
पूर्णांक | 0 |
मुख्य मूल समय रेखा ट्रैकिंग लेन के लिए ऊपर से नीचे तक ऊर्ध्वाधर स्टैकिंग क्रम स्थिति सूचकांक सेट करता है। |
parallelCommits |
बूलियन | गलत |
यदि संशोधित किया गया है सत्य, समान मातृ चरण दूरी वाले अलग-अलग कमिट एक ही ऊर्ध्वाधर स्तर पर सममित रूप से संरेखित होते हैं। |
वास्तविक दुनिया का नक्शा: एंटरप्राइज गिट-फ्लो रिलीज प्रबंधन पाइपलाइन
यह व्यापक एंटरप्राइज नक्शा एक मानक उत्पादन रिलीज पाइपलाइन को दर्शाता है। यह विन्यास पैरामीटर को ओवरराइड करता है ताकि मूल लेन का नाम बदला जा सके ट्रंक, एक निश्चित ब्रांच क्रम पदानुक्रम स्थापित करता है, बहुआयामी ब्रांच लेन (विकास और फीचर-प्रमाणीकरण), मर्ज करता है, कस्टम टैग लगाता है, और उच्च प्राथमिकता वाले हाइलाइट कमिट आकृतियों को डेप्लॉय करता है।
%%{init: { 'gitGraph': { 'mainBranchName': 'ट्रंक', 'showCommitLabel': सत्य } } }%%
gitGraph
कमिट id: "प्रारंभिक-कोर" टैग: "v1.0.0"
कमिट id: "सेटअप-सीआई"
ब्रांच विकास
चेकआउट विकास
कमिट id: "स्प्रिंट-1-बेस"
ब्रांच फीचर-प्रमाणीकरण
चेकआउट फीचर-प्रमाणीकरण
कमिट id: "जेवीटी-लॉजिक"
कमिट id: "एमएफए-लॉजिक" प्रकार: हाइलाइट
चेकआउट विकास
मर्ज फीचर-प्रमाणीकरण id: "मर्ज-प्रमाणीकरण"
कमिट id: "बीटा-संकलित"
चेकआउट ट्रंक
मर्ज विकास id: "रिलीज-प्रोड" टैग: "v2.0.0" 
सामान्य सिंटैक्स त्रुटियाँ और सिस्टम सीमाएँ
सटीक संस्करण नियंत्रण ग्राफ के संकलन के समय, लेआउट गणना बग से बचने के लिए इन समस्या निवारण पैरामीटर को ध्यान में रखें:
- केस संवेदनशीलता त्रुटियाँ: मुख्य प्रारंभिक घोषणा को स्पष्ट कैमलकेस में लिखा जाना चाहिए जैसे
गिटग्राफ. इसे सभी छोटे अक्षरों में लिखना जैसेगिटग्राफकंपाइलर पार्सिंग क्रैश को ट्रिगर करेगा। - उपयुक्त अल्फान्यूमेरिक पहचानकर्ता: कस्टम कमिट पैरामीटर पास करते समय (उदाहरण के लिए,
id: कोर_इनिट), जिनमें डैश, स्पेस या बिंदु हों *आवश्यक* हैं डबल कोटेशन में लिप्त किया जाना चाहिए। कोटेशन ब्लॉक भूलने से वैलिडेशन संकलन त्रुटियाँ गायब हो जाएंगी। - अमान्य चेकआउट लक्ष्य: कॉल करना है
branch_name चेकआउट करेंपहले से इनिशियलाइज़ किए गए तार पहचान पर कार्रवाई जिसे उपयोग करकेbranch branch_nameकमांड ग्राफ निर्माण को तुरंत तोड़ देगा। - शाखा क्रम संघात: जब उपयोग करते हैं
क्रमशाखाओं पर कॉन्फ़िगरेशन टैग का उपयोग करते समय सुनिश्चित करें कि एक ही पूर्णांक पर एक से अधिक ट्रैक मैप न हों, अन्यथा ओवरलैपिंग कैनवास पथ ट्रेस चाहते हैं। शाखा ट्रैक संख्याओं को अद्वितीय रखें। - स्पेस सेपरेशन विफलताएं: सुनिश्चित करें कि कोष्ठकीय पैरामीटर मैट्रिक्स के भीतर गुणों को अलग करते समय स्पष्ट आर्ग्युमेंट स्पेस मौजूद हों (उदाहरण के लिए, उपयोग करें
id: "1", type: हाइलाइट). गायब कॉमा या स्पेस को छोड़ने से पार्सिंग एक्सेप्शन हो सकते हैं।