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