संक्षेप में: सर्वश्रेष्ठ अभ्यास शाखा है, अक्सर विलय और हमेशा सिंक में रखें ।
मास्टर शाखा से अलग कोड में अपना कोड रखने के बारे में बहुत स्पष्ट रूकावटें हैं:
- आप बड़े या विघटनकारी परिवर्तन का कार्यान्वयन करने वाले हैं
- आप कुछ परिवर्तन करने वाले हैं जिनका उपयोग नहीं किया जा सकता है
- आप किसी ऐसी चीज़ पर प्रयोग करना चाहते हैं जो आपको यकीन न हो कि यह काम करेगी
- जब आपको बाहर शाखा करने के लिए कहा जाता है, तो दूसरों के पास कुछ ऐसा हो सकता है जो उन्हें मास्टर में करने की आवश्यकता होती है
अंगूठे का नियम बाहर शाखाओं में बंटने के बाद है, आपको मास्टर शाखा के साथ तालमेल रखना चाहिए। क्योंकि अंततः आपको इसे वापस मास्टर में विलय करने की आवश्यकता है। वापस विलय करते समय संघर्षों की एक बड़ी जटिल गड़बड़ी से बचने के लिए, आपको अक्सर, अक्सर विलय करना चाहिए।
अच्छी प्रथाओं का पालन करें
विंसेंट ड्रेज़ेन द्वारा एक सफल गिट ब्रांचिंग मॉडल में अच्छे सुझाव हैं। यदि यह ब्रांचिंग मॉडल आपसे अपील करता है कि आप git में फ्लो एक्सटेंशन पर विचार करें । दूसरों ने प्रवाह के बारे में टिप्पणी की है ।
प्रथाओं को टैग करना
जैसा कि आप पहले से ही जानते हैं, Git आपको 1.0-2-g1ab3183 जैसे पहचानकर्ता देता है, लेकिन वे टैग नहीं हैं! टैगिंग को git टैग के साथ किया जाता है, और जो टैग git टैग का उपयोग करके बनाए जाते हैं वे प्रतिबद्ध पहचानकर्ताओं के लिए आधार बनाते हैं। दूसरे शब्दों में, Git में आप शाखाओं को टैग नहीं करते हैं। आप कमिट्स टैग कर रहे हैं। यह कहना सही है कि टैग केवल एक टिप्पणी करने के लिए एक एनोटेट सूचक है।
इसे प्रदर्शित करने वाले व्यावहारिक उदाहरण को देखें,
/ - [v1.0]
v
———————————————————- S ---.- A <- गुरु
\
\ _---- बी <- परीक्षण
चलो 'S' को 'v1.0' टैग द्वारा इंगित किया जाना चाहिए। यह प्रतिबद्धता शाखा 'मास्टर' और शाखा 'परीक्षण' दोनों पर है। यदि आप कमिटमेंट 'ए' ('मास्टर' शाखा के शीर्ष) पर " गिट डिस्क्रिप्शन " चलाते हैं, तो आपको कुछ ऐसा मिलेगा v1.0-2-g9c116e9
। यदि आप कमिटमेंट 'ए' (उर्फ 'टेस्ट' शाखा) के शीर्ष पर "git description" चलाते हैं, तो आपको कुछ ऐसा मिलेगा v1.0-2-g3f55e41
, जो कि डिफ़ॉल्ट git-description कॉन्फ़िगरेशन के साथ है। ध्यान दें कि यह परिणाम थोड़ा अलग है। v1.0-2-g9c116e9
इसका मतलब है कि हम 9c116e9
टैग के बाद क्रमबद्ध SHA-1 आईडी , 2 के साथ प्रतिबद्ध हैं v1.0
। कोई टैग नहीं है v1.0-2
!
यदि आप चाहते हैं कि आपका टैग केवल शाखा 'मास्टर' पर दिखाई दे, तो आप 'परीक्षण' शाखा के शाखा बिंदु के बाद नई कमिट (उदाहरण के लिए केवल GIT-VERSION-FILE में डिफ़ॉल्ट / फ़ॉलबैक संस्करण की जानकारी अपडेट कर सकते हैं) बना सकते हैं। यदि आप टैग का परीक्षण 'शाखा' जैसे 'v1.0.3' पर करते हैं, तो यह केवल 'परीक्षण' से दिखाई देगा।
संदर्भ
मैंने बहुत से, बहुत से, उपयोगी ब्लॉग और पोस्ट सीखे हैं। हालाँकि, जो पेशेवर रूप से सचित्र हैं वे दुर्लभ हैं। इस प्रकार, मैं एक पोस्ट की सिफारिश करना चाहूंगा - @nvie द्वारा एक सफल गिट ब्रांचिंग मॉडल । मैंने उसका दृष्टांत उधार लिया है :)