Develop Branch Git Flow में मुख्य इंटीग्रेशन ब्रांच है जहाँ रिलीज़ तैयार करने से पहले सभी पूर्ण की गई feature branches को मर्ज किया जाता है। main के विपरीत, develop में सबसे नए लेकिन अभी तक जारी नहीं किए गए परिवर्तन होते हैं — यहाँ टीम के सभी डेवलपर्स से दैनिक कोड इंटीग्रेशन होता है। Atlassian, 2024 के अनुसार, develop Git Flow में एक अनिवार्य ब्रांच है और टीम के लिए एक स्थिर इंटीग्रेशन वातावरण प्रदान करता है।
मुख्य बिंदु
Develop Branch (डेवलपमेंट ब्रांच) Git Flow में एक लंबे समय तक चलने वाली ब्रांच है जो सभी डेवलपर्स से कोड इंटीग्रेशन के लिए केंद्रीय हब के रूप में कार्य करती है। डेवलपमेंट पूरा होने और कोड रिव्यू के बाद feature branches इसमें मर्ज की जाती हैं।
develop में कोड हमेशा रिलीज़ बनाने के लिए तैयार स्थिति में होता है, हालाँकि अभी तक प्रोडक्शन में डिप्लॉय नहीं किया गया है। इसका मतलब है कि develop की सभी सुविधाएँ रिव्यू, टेस्टिंग और इंटीग्रेशन जाँच से गुज़री हैं, लेकिन अभी भी अपने रिलीज़ चक्र की प्रतीक्षा कर रही हैं।
main के विपरीत, जहाँ प्रत्येक कोड संस्करण एक रिलीज़ है, develop में परिवर्तनों की एक सतत धारा होती है। feature branches के मर्ज होने पर develop में commits दिखाई देते हैं, जो दिन में कई बार हो सकता है।
Vincent Driessen, 2010 के अनुसार, develop एक सफल ब्रांचिंग मॉडल का एक महत्वपूर्ण तत्व है, क्योंकि यह ड्राफ्ट कार्य को रिलीज़ के लिए तैयार संस्करणों से अलग करता है।
develop और main के बीच अंतर को समझना उचित Git Flow वर्कफ़्लो के लिए महत्वपूर्ण है। ये ब्रांच अलग-अलग कार्य करती हैं और स्थिरता की अलग-अलग आवश्यकताएँ रखती हैं।
| विशेषता | Develop | Main / Master |
|---|---|---|
| उद्देश्य | नई सुविधाओं का एकीकरण | स्थिर रिलीज़ कोड |
| स्थिरता | उच्च (परीक्षण के बाद) | अधिकतम (उत्पादन) |
| Commit आवृत्ति | दैनिक (feature मर्जिंग) | प्रति रिलीज़ (हर 1-4 सप्ताह) |
| ब्रांच स्रोत | इससे feature बनाई जाती हैं | इससे hotfix बनाई जाती हैं |
| मर्जिंग | PR के माध्यम से feature से | merge के माध्यम से release से |
develop और main में विभाजन टीम को प्रोडक्शन संस्करण की स्थिरता को जोखिम में डाले बिना लगातार नए कोड को एकीकृत करने की अनुमति देता है। डेवलपर्स आधिकारिक रिलीज़ से पहले भी, PR अनुमोदन के तुरंत बाद अपना कोड develop में देख सकते हैं।
Git Flow मॉडल में, develop feature branches (परिवर्तनों का स्रोत) और release branches (रिलीज़ की तैयारी) के बीच एक केंद्रीय स्थान रखता है। इस पदानुक्रम को समझना प्रभावी ब्रांचिंग की नींव है।
यह संरचना सुनिश्चित करती है कि develop में हमेशा सभी नई सुविधाओं के साथ नवीनतम कोड हो, जबकि main में केवल सत्यापित प्रोडक्शन कोड हो। यह App Store और Google Play में लंबे रिव्यू चक्र वाले मोबाइल प्रोजेक्ट्स के लिए विशेष रूप से महत्वपूर्ण है।
Develop feature, release और hotfix branches के बीच केंद्रीय कड़ी के रूप में कार्य करता है। मर्ज दिशाओं को समझना संघर्षों और commit हानि को रोकने के लिए आवश्यक है।
develop में कोड गुणवत्ता उच्च होनी चाहिए, लेकिन पूर्ण नहीं। main के विपरीत, जहाँ हर त्रुटि का मतलब तत्काल hotfix है, develop में मामूली कमियाँ स्वीकार्य हैं जो रिलीज़ से पहले ठीक कर दी जाएँगी।
develop में मर्ज करने से पहले कोड के लिए न्यूनतम आवश्यकताएँ:
CI/CD पाइपलाइन में स्वचालित जाँच develop में प्रत्येक push पर चलनी चाहिए। यदि build टूटता है, तो जिम्मेदार डेवलपर को एक घंटे के भीतर समस्या को ठीक करना होगा या अपने commit को वापस लेना होगा।
develop के लिए GitHub Actions सेट करना सुनिश्चित करता है कि प्रत्येक PR मर्ज करने से पहले स्वचालित जाँच से गुज़रे। एक सामान्य पाइपलाइन में build, टेस्ट और लिंटिंग शामिल हैं।
# GitHub Actions — मर्ज के बाद develop की जाँच
name: Develop CI
on:
pull_request:
branches: [develop]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./gradlew testDebug
- name: Lint
run: ./gradlew lint
- name: Build
run: ./gradlew assembleDebug
develop में मर्ज करना इंटीग्रेशन ब्रांच की स्थिरता बनाए रखने के लिए सख्त नियमों का पालन करना चाहिए। इन नियमों का उल्लंघन संघर्ष, टूटे हुए builds और टीम के समय की बर्बादी का कारण बनता है।
PR अद्यतित नियम विशेष रूप से महत्वपूर्ण है। यदि एक feature branch एक सप्ताह पहले बनाई गई थी और develop 50 commits आगे बढ़ गया है, तो सीधा मर्ज संघर्ष का कारण बन सकता है जिसे develop के बजाय PR के संदर्भ में हल करना बेहतर है।
Branch protection rules GitHub, GitLab या Bitbucket स्तर पर सेटिंग्स हैं जो develop में गलत परिवर्तनों को रोकती हैं। वे सुनिश्चित करते हैं कि एक आकस्मिक push भी इंटीग्रेशन ब्रांच को न तोड़े।
develop के लिए अनुशंसित सुरक्षा नियम:
develop सुरक्षा सेट करने में 10 मिनट लगते हैं लेकिन टूटी हुई इंटीग्रेशन ब्रांच से संबंधित हफ्तों के डाउनटाइम को रोकता है। मल्टी-प्लेटफ़ॉर्म टीमों वाले मोबाइल प्रोजेक्ट्स के लिए, यह विशेष रूप से प्रासंगिक है।
एक सामान्य डेवलपर के दिन पर विचार करें: सुबह वे develop को अपडेट करते हैं, एक नई feature branch बनाते हैं, और कार्य पूरा करने के बाद परिवर्तनों को वापस develop में मर्ज करते हैं।
# सुबह develop सिंक
git checkout develop
git pull origin develop
# develop से नई feature branch बनाना
git checkout -b feature/add-push-notifications
# सुविधा पर काम...
git add . && git commit -m "Add FCM integration"
# डेवलपमेंट के दौरान develop अपडेट करना
git fetch origin develop
git rebase origin/develop
# PR अनुमोदन के बाद — स्थानीय develop अपडेट करें
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
develop में git pull कमांड एक साथ दो ऑपरेशन करता है: git fetch (सर्वर से नए commits लाता है) और git merge (उन्हें स्थानीय ब्रांच के साथ मर्ज करता है)। develop के लिए, यह मानक सिंक्रनाइज़ेशन विधि है।
यदि build तोड़ने वाला कोड develop में आ जाता है, तो जल्दी से कार्य करने की आवश्यकता है। develop के डाउनटाइम का हर घंटा पूरी डेवलपमेंट टीम के लिए अवरुद्ध कार्य है।
यदि build तोड़ने वाला कोड develop में आ जाता है, तो समस्याग्रस्त परिवर्तनों को पूर्ववत करने वाला नया commit बनाने के लिए git revert का उपयोग करें। develop में git reset का उपयोग न करें — यह इतिहास को फिर से लिखता है जो अन्य टीम सदस्यों के पास पहले से है।
# समस्याग्रस्त commit ढूँढना
git log --oneline develop
# revert के माध्यम से commit रद्द करना (सुरक्षित)
git revert a1b2c3d
# रिमोट develop में फिक्स भेजना
git push origin develop
# किसी विशिष्ट commit में परिवर्तन देखना
git show a1b2c3d --stat
अक्सर पूछे जाने वाले प्रश्न
एक या दो डेवलपर्स वाले प्रोजेक्ट्स के लिए, develop अक्सर अनावश्यक होता है — main और feature branches पर्याप्त हैं। जैसे ही टीम 3+ लोगों तक बढ़ती है, develop स्थिर प्रोडक्शन कोड से अधूरी सुविधाओं को अलग करने के लिए आवश्यक हो जाता है।
नहीं, किसी भी पेशेवर प्रोजेक्ट में develop में सीधे commits निषिद्ध हैं। सभी परिवर्तन कोड रिव्यू और स्वचालित जाँच के साथ Pull Request के माध्यम से जाते हैं। अपवाद README या CI कॉन्फ़िगरेशन के प्रशासनिक संपादन हैं, लेकिन इन्हें भी PR के माध्यम से करना बेहतर है।
Trunk-based development में कोई अलग develop branch नहीं है — सभी डेवलपर्स बहुत छोटी feature branches (1-2 दिन) के साथ main में काम करते हैं। यह Git Flow का एक विकल्प है, जो उच्च स्तर के टेस्ट ऑटोमेशन वाली DevOps संस्कृति में लोकप्रिय है।
प्रत्येक रिलीज़ के बाद, release branch को वापस develop में मर्ज किया जाता है ताकि रिलीज़ तैयारी के दौरान किए गए सभी फिक्स शामिल किए जा सकें। यदि ऐसा नहीं किया जाता है, तो develop रिलीज़ कोड से अलग हो जाएगा, जिससे अगली रिलीज़ में संघर्ष होगा।
यदि develop टूट गया है, तो एक वरिष्ठ डेवलपर अंतिम स्थिर commit से hotfix branch बनाता है, समस्या को ठीक करता है, और विशेष स्थिति वाले PR के माध्यम से सीधे develop में फिक्स मर्ज करता है। पुनर्प्राप्ति के बाद, मूल कारण विश्लेषण किया जाता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें