Release Branch Git Flow में एक ब्रांच है जो किसी विशिष्ट रिलीज़ को डिप्लॉयमेंट के लिए तैयार करने हेतु develop से बनाई जाती है। इसमें एप्लिकेशन वर्जन फिक्स किया जाता है, अंतिम बग ठीक किए जाते हैं और मेटाडेटा अपडेट किया जाता है — बिना नई सुविधाएँ जोड़े। Vincent Driessen, 2010 के अनुसार, रिलीज़ ब्रांच रिलीज़ की तैयारी को वर्तमान डेवलपमेंट से अलग करती है, जिससे दोनों गतिविधियाँ समानांतर रूप से चल सकती हैं।
मुख्य बातें
release/X.Y.Z एप्लिकेशन वर्जन के अनुसार।Release Branch (रिलीज़ ब्रांच) Git Flow में एक अस्थायी ब्रांच है, जो develop से तब बनाई जाती है जब टीम तय करती है कि सुविधाओं का वर्तमान सेट रिलीज़ के लिए तैयार है। यह उतने समय तक मौजूद रहती है जितनी अंतिम रिलीज़ तैयारी में लगता है — कुछ घंटों से लेकर कुछ दिनों तक।
रिलीज़ ब्रांच का मुख्य उद्देश्य अगले संस्करणों के विकास को रोके बिना रिलीज़ के लिए सुविधाओं के एक विशिष्ट सेट को फ्रीज़ करना है। जब रिलीज़ ब्रांच डिप्लॉयमेंट के लिए तैयार की जा रही होती है, अन्य डेवलपर अगली रिलीज़ के लिए develop में फीचर ब्रांच मर्ज करना जारी रख सकते हैं।
रिलीज़ ब्रांच में कोई नई सुविधाएँ नहीं बनाई जाती हैं — केवल बग फिक्स, एप्लिकेशन वर्जन अपडेट, लोकलाइज़ेशन और दस्तावेज़ीकरण। सभी कार्य पूरे होने के बाद, रिलीज़ ब्रांच को main (रिलीज़ के रूप में चिह्नित) और वापस develop (ताकि बगफिक्स भविष्य के संस्करणों में पहुँचें) में मर्ज किया जाता है।
Atlassian, 2024 के अनुसार, नियमित रिलीज़ चक्र वाली परियोजनाओं के लिए रिलीज़ ब्रांच अत्यंत महत्वपूर्ण हैं — वे रिलीज़ प्रक्रिया की पूर्वानुमेयता और स्थिरता सुनिश्चित करते हैं।
रिलीज़ ब्रांच का जीवनचक्र निर्माण से लेकर हटाने तक कई चरणों को शामिल करता है। प्रत्येक चरण को समझने से टीम को क्रियाओं को समन्वयित करने और गलतियों से बचने में मदद मिलती है।
release/2.5.0 नाम की ब्रांच बनाई जाती है। develop अगले संस्करण के लिए फीचर ब्रांच स्वीकार करना जारी रखता है।v2.5.0।चरण 6 — develop में वापस मर्ज — अक्सर भुला दिया जाता है, लेकिन यह अत्यंत महत्वपूर्ण है। इसके बिना, रिलीज़ में किए गए बगफिक्स develop तक नहीं पहुँचेंगे, और अगली रिलीज़ में वही त्रुटियाँ फिर से प्रकट हो सकती हैं।
रिलीज़ ब्रांच का जीवनकाल रिलीज़ की जटिलता और develop में कोड की गुणवत्ता पर निर्भर करता है। औसतन, एक मध्यम आकार के मोबाइल एप्लिकेशन के लिए तैयारी में 2 से 5 कार्य दिवस लगते हैं।
रिलीज़ ब्रांच में सख्ती से सीमित कार्यों का सेट किया जाता है। इस सूची से किसी भी विचलन से Git Flow मॉडल का उल्लंघन होता है और रिलीज़ स्थिरता के लिए जोखिम पैदा होता है।
| परिवर्तन का प्रकार | अनुमत | उदाहरण |
|---|---|---|
| वर्जनिंग | हाँ | build.gradle में versionName अपडेट करना |
| बगफिक्स | हाँ | स्टार्टअप पर क्रैश ठीक करना |
| लोकलाइज़ेशन | हाँ | नई स्क्रीन के लिए अनुवाद जोड़ना |
| दस्तावेज़ीकरण | हाँ | CHANGELOG और README अपडेट करना |
| नई सुविधाएँ | नहीं | नई प्रोफ़ाइल स्क्रीन जोड़ना |
| रीफैक्टरिंग | नहीं | नेटवर्क लेयर को फिर से लिखना |
| लाइब्रेरी अपडेट | सावधानी से | केवल बगफिक्स के लिए patch वर्जन |
नई सुविधाओं पर प्रतिबंध का नियम रिलीज़ ब्रांच में सबसे महत्वपूर्ण है। यदि कोई सुविधा रिलीज़ के लिए तैयार नहीं हुई, तो वह अगले चक्र की प्रतीक्षा करती है। रिलीज़ ब्रांच में अधूरी सुविधा को धकेलने का प्रयास समय सीमा चूकने और प्रोडक्शन में बग का मुख्य कारण है।
रिलीज़ ब्रांच में एप्लिकेशन वर्जन नंबर अनिवार्य रूप से अपडेट किया जाता है। Android के लिए, ये build.gradle में versionCode और versionName फ़ील्ड हैं; iOS के लिए — Info.plist में CFBundleShortVersionString।
// build.gradle (ऐप-लेवल) — रिलीज़ ब्रांच में वर्जन अपडेट
android {
defaultConfig {
versionCode 42
versionName "2.5.0"
}
}
// iOS के लिए — Info.plist अपडेट
// CFBundleShortVersionString = 2.5.0
// CFBundleVersion = 42
शुरुआती डेवलपर अक्सर release और hotfix ब्रांच को भ्रमित करते हैं, हालाँकि उनका उद्देश्य मौलिक रूप से अलग है। गलत ब्रांच प्रकार चुनने से महत्वपूर्ण सुधार में देरी हो सकती है या रिलीज़ प्रक्रिया बाधित हो सकती है।
यदि रिलीज़ तैयारी के दौरान (रिलीज़ ब्रांच में) बग पाया जाता है — यह सामान्य बगफिक्स है। यदि बग प्रोडक्शन में (main पर) पाया जाता है — यह hotfix है, और यह main से बनाई जाती है, भले ही रिलीज़ ब्रांच पहले से मौजूद हो।
रिलीज़ ब्रांच नामकरण का एकीकृत मानक रिपॉज़िटरी नेविगेशन को सरल बनाता है और CI/CD सिस्टम को स्वचालित रूप से यह पहचानने देता है कि ब्रांच रिलीज़ प्रक्रिया से संबंधित है।
release/2.5.0।release/merlin।release/2024-12-01।release/X.Y.Z प्रारूप प्राथमिकता है, क्योंकि यह ब्रांच को सीधे वर्जन नंबर से जोड़ता है जो रिलीज़ को दिया जाएगा। इससे CI/CD स्क्रिप्ट द्वारा खोज और स्वचालित प्रसंस्करण सरल हो जाता है।
रिलीज़ ब्रांच का develop में वापस मर्ज (merge back) सबसे महत्वपूर्ण और साथ ही सबसे अधिक बार छोड़े जाने वाले ऑपरेशनों में से एक है। इसके बिना, रिलीज़ में किए गए सभी बगफिक्स केवल रिलीज़ वर्जन में रह जाते हैं और अगले रिलीज़ चक्र में नहीं पहुँचते।
वापस मर्ज प्रक्रिया रिलीज़ ब्रांच के main में मर्ज होने के बाद की जाती है। पहले release को develop में मर्ज किया जाता है, फिर हटा दिया जाता है। यह सुनिश्चित करता है कि develop में रिलीज़ तैयारी के दौरान किए गए सभी सुधार शामिल हों।
वापस मर्ज के बाद विरोध संभव हैं — खासकर यदि develop में पहले से नई फीचर ब्रांच दिखाई दे चुकी हैं जिन्होंने उन्हीं फ़ाइलों को बदला था। रिलीज़ के लिए जिम्मेदार डेवलपर इन विरोधों को हल करता है और develop को सर्वर पर push करता है।
कुछ टीमें इतिहास को रैखिक रखने के लिए वापस मर्ज के लिए merge के बजाय rebase का उपयोग करती हैं। हालाँकि, merge develop के लिए अधिक सुरक्षित है, क्योंकि यह commit इतिहास को फिर से नहीं लिखता जो पहले से अन्य डेवलपर्स द्वारा उपयोग किया जा रहा हो।
आइए मोबाइल एप्लिकेशन वर्जन 2.5.0 की सफल रिलीज़ के बाद रिलीज़ ब्रांच के साथ काम करने का पूरा चक्र देखें: निर्माण से लेकर हटाने तक।
# 1. develop से रिलीज़ ब्रांच बनाएँ
git checkout develop
git pull origin develop
git checkout -b release/2.5.0
# 2. वर्जन और बगफिक्स अपडेट करें
git add build.gradle
git commit -m "Bump version to 2.5.0"
# 3. बग ठीक करें (केवल bugfixes)
git add src/fix/
git commit -m "Fix crash on payment screen"
# 4. रिलीज़ ब्रांच को सर्वर पर भेजें
git push origin release/2.5.0
# 5. release को main में मर्ज करें
git checkout main
git pull origin main
git merge --no-ff release/2.5.0
git tag -a v2.5.0 -m "Release 2.5.0"
git push origin main --tags
# 6. develop में वापस मर्ज करें
git checkout develop
git merge --no-ff release/2.5.0
git push origin develop
# 7. रिलीज़ ब्रांच हटाएँ
git branch -d release/2.5.0
git push origin --delete release/2.5.0
कमांड 5 और 6 — डबल मर्ज — अत्यंत महत्वपूर्ण हैं। पहले main को रिलीज़ कोड और टैग मिलता है, फिर develop रिलीज़ के बगफिक्स के साथ सिंक्रोनाइज़ होता है। यदि चरण 6 छोड़ दिया जाता है, तो रिलीज़ के सुधार अगले विकास चक्र में नहीं पहुँचेंगे।
नियमित रिलीज़ वाले मोबाइल प्रोजेक्ट्स के लिए, रिलीज़ ब्रांच बनाने और वर्जन अपडेट करने की प्रक्रिया को CI/CD स्क्रिप्ट के माध्यम से स्वचालित किया जा सकता है। GitHub Actions एक वर्कफ़्लो बनाने की अनुमति देता है जो बटन दबाने पर स्वचालित वर्जन अपडेट के साथ रिलीज़ ब्रांच बनाता है।
नियमित रिलीज़ वाले मोबाइल प्रोजेक्ट्स के लिए, रिलीज़ ब्रांच बनाने और वर्जन अपडेट करने की प्रक्रिया को CI/CD स्क्रिप्ट के माध्यम से स्वचालित किया जा सकता है। GitHub Actions एक वर्कफ़्लो बनाने की अनुमति देता है जो बटन दबाने पर स्वचालित वर्जन अपडेट के साथ रिलीज़ ब्रांच बनाता है।
# GitHub Actions — रिलीज़ ब्रांच निर्माण का स्वचालन
name: Create Release Branch
on:
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g. 2.5.0)'
required: true
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create release branch
run: |
git checkout develop
git checkout -b release/${{ inputs.version }}
git push origin release/${{ inputs.version }}
अक्सर पूछे जाने वाले प्रश्न
यदि आप Git Flow का पालन करते हैं तो एक समय में केवल एक रिलीज़ ब्रांच। दो सक्रिय रिलीज़ ब्रांच का मतलब है कि टीम समानांतर में दो रिलीज़ जारी करने का प्रयास कर रही है — यह अनुक्रमिक रिलीज़ के सिद्धांत का उल्लंघन करता है और वर्जन में भ्रम पैदा करता है।
git revert के माध्यम से रिलीज़ ब्रांच से अधूरी सुविधा के commits हटाएँ और सुविधा को अगली रिलीज़ तक स्थगित करें। कभी भी अधूरी कार्यक्षमता को प्रोडक्शन में जारी न करें — तकनीकी ऋण और संभावित बग जल्दबाजी के लायक नहीं हैं।
एकल सुधार वाली सरल रिलीज़ के लिए, रिलीज़ ब्रांच को छोड़ा जा सकता है और सीधे develop से main में मर्ज किया जा सकता है। हालाँकि, मानक रिलीज़ के लिए, रिलीज़ ब्रांच अनिवार्य है — यह वर्जन को फिक्स करती है, तैयारी को अलग करती है, और बगफिक्स का डबल मर्ज सुनिश्चित करती है।
सभी रिलीज़ परिवर्तनों को पूर्ववत करने वाला नया commit बनाने के लिए main पर git revert का उपयोग करें। फिर git push origin --delete vX.Y.Z कमांड से रिलीज़ टैग हटाएँ। समस्याओं को ठीक करने के बाद, बढ़े हुए patch नंबर के साथ नई रिलीज़ ब्रांच बनाएँ।
Release candidate (RC) एक बिल्ड आर्टिफैक्ट है जो अंतिम परीक्षण से गुज़रता है। Release branch एक Git ब्रांच है जिससे release candidate बनाया जाता है। एक रिलीज़ ब्रांच कई RC बिल्ड (RC1, RC2, आदि) उत्पन्न कर सकती है जैसे-जैसे बग ठीक किए जाते हैं।
सारांश
release/X.Y.Z SemVer वर्जन नंबर के साथ।हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें