सबसे पहले, मैं यह बताना चाहता हूं कि git में, प्रत्येक pullका शाब्दिक रूप से एक ब्रांचिंग ऑपरेशन है, और हर pushएक मर्ज है। masterएक डेवलपर की मशीन पर से एक पूरी तरह से अलग शाखा है masterएक तकनीकी नजरिए से बराबर खड़े के साथ, आप का हिस्सा एक केंद्रीय रेपो पर। upstreamअगर यह मेरे उद्देश्यों के लिए बेहतर है तो मैं कभी-कभी अपने स्थानीय संस्करण का नाम बदलकर या कुछ और रखूंगा।
मैं इसे इंगित करता हूं क्योंकि कई संगठन सोचते हैं कि वे आपके सहयोगी की तुलना में अधिक प्रभावी ढंग से शाखाओं का उपयोग कर रहे हैं, जब वास्तव में वे रास्ते में एक शाखा के लिए एक अतिरिक्त नाम बनाने की तुलना में थोड़ा अधिक कर रहे हैं, जो वैसे भी इतिहास में सहेजा नहीं जाएगा। यदि आपका सहकर्मी एक परमाणु कमिटमेंट में सुविधाएँ दे रहा है, तो सुविधा शाखा के मर्ज कमिटमेंट के रूप में बैकअप लेना आसान है। फ़ीचर शाखाओं के विशाल बहुमत को बहुत कम समय तक और अक्सर विलय किया जाना चाहिए।
कहा जा रहा है कि, उनकी कार्यशैली की मुख्य कमियां दो गुना हैं। सबसे पहले, यह एक अधूरी सुविधा पर सहयोग करना बहुत मुश्किल बनाता है। हालाँकि, यह आवश्यक नहीं है कि जब सहयोग की आवश्यकता हो, उस समय केवल एक शाखा बनाएं।
दूसरा, यह बहुत मुश्किल से विलय से पहले समीक्षा करता है। इस बिंदु पर, आपको वास्तव में उसे समझाने की आवश्यकता नहीं है। आप गितुब, जेरिट, या गिटलैब जैसे उपकरण को अपना सकते हैं, और सभी मर्जों के लिए पुल अनुरोध कोड समीक्षा और स्वचालित परीक्षणों को पारित करने की आवश्यकता होती है। यदि आप ऐसा कुछ नहीं कर रहे हैं, तो स्पष्ट रूप से आप इसकी पूरी क्षमता का उपयोग नहीं कर रहे हैं, और यह कोई आश्चर्य नहीं है कि आपके सहकर्मी को यह क्षमता दिखाई नहीं देती है।