मैं वर्तमान में एक कंपनी के लिए काम कर रहा हूँ जो GST कोड के प्रबंधन के लिए VSTS का उपयोग करती है। किसी शाखा को मर्ज करने का Microsoft का "अनुशंसित" तरीका "स्क्वैश मर्ज" करना है, जिसका अर्थ है कि उस शाखा के लिए आने वाले सभी परिवर्तनों को शामिल करते हुए एक नई प्रतिबद्ध में स्क्वैश हो जाता है।
मुसीबत यह है कि अगर मैं एक बैकलॉग आइटम के लिए एक शाखा में कुछ बदलाव करता हूं, तो तुरंत एक और बैकलॉग आइटम के लिए किसी अन्य शाखा में परिवर्तन करना शुरू करना चाहता हूं, और वे परिवर्तन पहली शाखा के परिवर्तन के सेट पर निर्भर करते हैं?
मैं उस बैकलॉग आइटम के लिए एक शाखा बना सकता हूं और इसे पहली शाखा पर आधारित कर सकता हूं। अब तक सब ठीक है। हालाँकि, जब यह मेरे लिए दूसरी शाखा बनाने का अनुरोध करने का समय आता है, तो पहली शाखा को पहले ही मास्टर में मिला दिया गया है और क्योंकि यह स्क्वैश मर्ज के रूप में किया गया है, संघर्षों के एक समूह को हरी झंडी दिखाई। ऐसा इसलिए होता है क्योंकि git मूल कमिट्स को नहीं देखता है कि दूसरी ब्रांच बंद थी, यह सिर्फ एक बड़ी स्क्वैश मर्ज को देखता है और इसलिए दूसरी ब्रांच को मर्ज करने के लिए इसमें पहली ब्रांच के सभी कमेंट्स को फिर से देखने की कोशिश करता है स्क्वैश मर्ज के कारण, बहुत सारे संघर्ष हुए।
तो मेरा सवाल यह है कि क्या इसके आस-पास जाने का कोई तरीका है (केवल एक फीचर ब्रांच को दूसरे से बंद करने के अलावा, जो मेरे वर्कफ़्लो को सीमित करता है) या स्क्वैश मर्जिंग को सिर्फ गैट के मर्जिंग एल्गोरिथम को तोड़ता है?
feature1
मास्टर में स्क्वैश-मर्ज करते हैं , तोfeature2
बाद में विलय करना चाहते हैं । उस स्थिति में, संघर्ष में पहला दृष्टिकोण परिणाम नहीं होगा क्योंकि गिटfeature1
स्क्वैश कमिट के शीर्ष पर कमिट्स को फिर से लागू करने की कोशिश करता है , जबकि दूसरा गिट को यह निर्धारित करने की अनुमति देता है कि उन कमियों को विलय करने की आवश्यकता नहीं है?