ऐसा लगता है कि आपके यहाँ कुछ समस्याएं हैं:
1. एक विशिष्ट रिलीज के लिए सुविधाओं की पहचान करना
यह एक परियोजना प्रबंधन मुद्दा है, और एक समन्वय मुद्दा है। क्या यह सुविधा पहले, उसी समय या इस अन्य सुविधा के बाद जारी की जाएगी ? यदि रिलीज़ एक समय में एक सुविधा होना चाहते हैं, तो पहचानें। यदि सुविधाओं को रिलीज़ में समूहीकृत किया जा रहा है, तो पता लगाएँ कि समूह क्या हैं, और इसे देवों और निर्णय निर्माताओं के साथ लागू करते हैं । टैग जारी करने के लिए अपनी समस्या ट्रैकिंग या टिकटिंग प्रणाली का उपयोग करें। यह स्पष्ट करें कि यदि किसी विशिष्ट रिलीज़ की एक विशेषता नो-गो है, तो वे सभी हैं।
2. शाखापर रणनीति
Git-flow इन जैसे मुद्दों के लिए आसान उत्तर है, और अक्सर लोग git-flow के एक संस्करण का उपयोग करते हैं, भले ही वे यह न जानते हों कि वह क्या है। मैं यह नहीं कहने जा रहा कि यह सभी समस्याओं के लिए एक पकड़ है, लेकिन यह बहुत मदद करता है।
ऐसा लगता है कि आप गैर-नियतात्मक रिलीज रणनीतियों के साथ एक मुद्दे में भाग रहे हैं, जहां सुविधाओं को मंजूरी दी गई है और कुछ समय पहले जो विकास शुरू हुआ था, वह कुछ और के बाद जारी किया जा सकता है जो कि हाल ही में शुरू हुआ था - लीप-मेंढक सुविधाएँ।
लंबे समय तक रहने वाली सुविधा शाखाएं या एक साथ रिलीज शाखाएं शायद इस प्रकार के मुद्दों के लिए सबसे अच्छा जवाब हैं। मर्ज (या यदि आप इसके साथ सहज हैं, तो छूट दें), अपनी लंबी-लंबी शाखाओं में मास्टर से नवीनतम । केवल उन विशेषताओं में विलय करने के लिए सावधान रहें जो पहले से ही लाइव हैं, अन्यथा आप उन मुद्दों पर चलेंगे जो अब आप कर रहे हैं (एक शाखा पर कई मिश्रित सुविधाएँ)।
"हॉटफ़िक्स" या "बगफ़िक्स" शाखाएं इस प्रक्रिया का एक अनिवार्य हिस्सा हैं; छोटे एक-बंद फ़िक्सेस के लिए उनका उपयोग करें जिनके पास एक छोटा क्यूए चक्र है।
आपके विवरण से, यह भी बेहतर हो सकता है कि आप एक ऑफिशियल 'डेवलपमेंट' ब्रांच को न बनाए रखें। बल्कि, शाखा सभी विशेषताओं को बंद कर देती है, और एक रिलीज़ होने के बाद विलय की गई रिलीज़ शाखाएँ बनाती हैं।
3. वातावरण
उत्पादन == मास्टर को छोड़कर, अपने वातावरण से संबंधित शाखाओं से मेल न खाएं। The विकास ’शाखा को तोड़ा जाना चाहिए। रिलीज शाखाओं को पर्यावरण के परीक्षण के लिए धकेल दिया जाता है, चाहे वह एक क्यूए वातावरण हो या एक मचान एनवायरमेंट। यदि आपको जरूरत है, तो एक विशिष्ट सुविधा शाखा को एक वातावरण में धकेलें।
यदि आपके पास एक से अधिक सुविधा शाखा हैं, जिन्हें अलग से जारी करने की आवश्यकता है, लेकिन एक ही समय में परीक्षण किया जा रहा है ..... _ \ _ (¯) _ / ツ .... किसी अन्य सर्वर को स्पिन करें? शायद उन्हें फेंक-दूर शाखा में एक साथ मिला दें ... मूल शाखाओं में सुधार / परिवर्तन करें और फेंक-दूर शाखा में फिर से विलय करें; अंतिम स्वीकृति और व्यक्तिगत रिलीज शाखाओं पर यूएटी करें।
4. एक शाखा से गैर-अनुमोदित सुविधाओं को हटाना
यह वही है जो उपरोक्त विचारों से बचने की कोशिश कर रहा है, क्योंकि यह एक शक के बिना कोशिश करने और करने के लिए सबसे दर्दनाक चीज है। यदि आप भाग्यशाली हैं, तो विशेषताओं को आपके विकास या परीक्षण शाखाओं में मर्ज किए गए मर्ज का उपयोग करके विलीन कर दिया गया है। यदि आप अशुभ हैं, तो देवों ने सीधे विकास / परीक्षण शाखा के लिए प्रतिबद्ध किया है।
किसी भी तरह से, यदि आप एक रिलीज़ की तैयारी कर रहे हैं और इसमें अनुचित परिवर्तन हैं, तो आपको रिलीज़ शाखा से उन अनपेक्षित कॉमिट्स को वापस करने के लिए Git का उपयोग करना होगा ; सबसे अच्छा विचार यह है कि रिलीज का परीक्षण करने से पहले ।
शुभकामनाएँ।