मुझे यहां समस्या नहीं दिख रही है।
आपके पास अपनी master
शाखा के साथ हर बार यह पहले से ही है , जो सुविधाओं के विकसित होने और फिर विलय होने पर बदलता रहता है।
इसलिए, अपने ठोस उदाहरण में, आप सबसे पहले feature_xxx_backend
शाखा बनाते हैं और बैकएंड परिवर्तन विकसित करते हैं। जब यह किया जाता है, तो शाखा की समीक्षा की जाती है और master
समीक्षा पूरी होने के बाद इसे विलय कर दिया जाएगा ।
तो, बस, एक और शाखा शुरू feature_yyy_frontend
। आप शायद सीधे से शाखा करना चाहेंगे feature_xxx_backend
, ताकि आपके पास अपने ब्रांक्स में पहले से ही वे बदलाव हों। फिर बस शाखा के सामने दृश्य सुविधा विकसित करें master
।
जब feature_xxx_backend
शाखा बदलती है, उदाहरण के लिए क्योंकि समीक्षा के दौरान आने वाली चीजें होती हैं, जिन्हें स्वीकार करने की आवश्यकता होती है, बस इन परिवर्तनों को करें और उन्हें feature_yyy_frontend
शाखा में विलय कर दें । फिर आगे की शाखा पर जारी रखें।
बैकएंड ब्रांच की समीक्षा पूरी होने के बाद, यह विलय हो जाता है master
। इस बिंदु पर, यह करने के लिए बुद्धिमान होगा rebasefeature_yyy_frontend
पर शाखा master
, ताकि समीक्षक केवल समीक्षा करने की आवश्यकता नया परिवर्तन है कि इस शाखा में योगदान देता है master
, और करने की जरूरत नहीं बैकएंड के लिए किए गए परिवर्तनों (जो पहले से ही अनुमोदित किया गया है फिर से समीक्षा )।
यह तब भी किया जा सकता है जब आपके पास दो, तीन या अधिक आश्रित शाखाएँ हों। यदि आपके पास दो फ़ीचर शाखाएँ हैं, जिन पर आप निर्भर हैं, सरल एक व्युत्पन्न शाखा बनाते हैं, जिसमें दोनों फ़ीचर मर्ज हो गए हैं। वहाँ से ब्रांच, तीसरी फ़ीचर को विकसित करें, दोनों फ़ीचर ब्रांचों को मर्ज करने का तरीका जब उनमें से प्रत्येक बदल जाए। जब दोनों विशेषताएं हो जाती हैं और या तो व्युत्पन्न शाखा में विलीन हो जाती हैं, तो उस पर रिबास, या यदि वे मास्टर में विलय हो जाते हैं, तो मास्टर के लिए रिबेस करें।
रिबासिंग (जैसा कि ऊपर सुझाव दिया गया है) वास्तव में शक्तिशाली है और परिवर्तनों की एक साफ लॉग रखने में मदद करता है, जिससे समीक्षा बहुत आसान हो जाती है।