जीआईटी एक SCM कार्यप्रणाली के कार्यान्वयन की तुलना में SCM फ्रेमवर्क के कार्यान्वयन से अधिक है, क्योंकि वास्तव में एक तीसरी कब्ज़ है- और सबसे अधिक दूसरों के लिए बहुत संभव है। यह तीसरी संभावना पर आधारित है rebase।
rebaseGIT subcommand (अपने विषय शाखा की नोक के लिए अपने शाखाओं बिंदु से आम तौर पर प्रतिबद्ध की एक श्रृंखला लेता है topic) और उन्हें कहीं और पुन: चलाने के (आमतौर पर अपने एकीकरण शाखा की नोक, जैसे पर master)। rebaseSubcommand नई करता है, जो एक प्रपत्र समीक्षा करना आसान है कि में प्रतिबद्ध उलटफेर का अवसर देता है पैदा करता है। यह एक नई श्रृंखला की उपज देता है, जो topicकि एकीकरण शाखा के शीर्ष पर निहित होने के समान है । इस नई शाखा को अभी भी topicजीआईटी द्वारा बुलाया जाता है, ताकि पुराने संदर्भ को छोड़ दिया जाए। मैं अनौपचारिक topic-0रूप से आपकी शाखा की मूल स्थिति को लेबल करता हूं topic-1और इसी तरह इसके विभिन्न रीफैक्टरिंग पर।
यहाँ आपकी topicशाखा के लिए मेरा सुझाव है :
(वैकल्पिक कदम) आप सहभागी अपने विषय शाखा rebase topicअपनी शाखाओं मुद्दे पर (देखें --fixupके लिए विकल्प commitऔर -iऔर --autosquashपर विकल्प rebase) है, जो आप एक तरह से समीक्षा करने के लिए आसान है कि में अपने प्रतिबद्ध पुनर्लेखन के लिए अवसर देता है। इससे एक शाखा निकलती है topic-1।
आप अपनी विषय शाखा को अपनी एकीकरण शाखा में सबसे ऊपर रखते हैं, एक मर्ज करने के समान है, लेकिन एक मर्ज के साथ इतिहास को प्रदूषित नहीं करता है, जो केवल एक सॉफ्टवेयर इंजीनियरिंग विरूपण साक्ष्य है। इससे एक शाखा निकलती है topic-2।
topic-2एक टीम के साथी को भेजें जो इसे टिप के खिलाफ समीक्षा करता है master।
यदि topic-2ठीक है तो इसे मास्टर में विलय करें।
नोट शाखाएँ - जहाँ शाखा प्रतिबद्ध वृक्ष को संदर्भित करती है - सभी को GIT द्वारा समान कहा जाएगा, इस प्रकार, प्रक्रिया के अंत में, केवल शाखा topic-2का GIT में एक नाम होता है।
पेशेवरों:
- समीक्षा में कोई अप्रचलित कोड नहीं।
- कोई सहज "विदेशी मर्ज" समीक्षा (आप 1 में वर्णित घटना)।
- स्वच्छ तरीके से फिर से लिखने का अवसर।
विपक्ष:
- एक शाखा के बजाय
topic-0, तीन शाखाएँ कलाकृतियाँ हैं topic-0, topic-1और topic-2जो प्रतिबद्ध वृक्ष में बनाई गई हैं। (हालांकि किसी भी समय, उनमें से केवल एक का नाम जीआईटी में है।)
आपके 1 परिदृश्य में «अगर किसी ने" 1. "के बीच कुछ मिला दिया है और "2." »शाखा बिंदु के निर्माण और उस समय के बीच फैले समय को संदर्भित करता है जब आप विलय करने का निर्णय लेते हैं। इस परिदृश्य में «अगर किसी ने" 1. "के बीच कुछ विलय कर दिया है और "2." »रिबास और मर्ज के बीच फैले समय को संदर्भित करता है, जो आमतौर पर बहुत कम है। इस प्रकार, मेरे द्वारा प्रदान किए गए परिदृश्य में, आप «लॉक» masterमर्ज के समय के लिए शाखा को अपने वर्कफ़्लो के बिना सांकेतिक रूप से परेशान कर सकते हैं, जबकि यह 1 परिदृश्य में अव्यावहारिक है।
यदि आप व्यवस्थित कोड समीक्षा कर रहे हैं, तो संभवतः पर्याप्त तरीके (वैकल्पिक चरण) में कमिट को पुनर्व्यवस्थित करना एक अच्छा विचार है।
मध्यवर्ती शाखा कलाकृतियों का प्रबंधन केवल एक कठिनाई प्रस्तुत करता है यदि आप उन्हें रिपॉजिटरी के बीच साझा करते हैं।