Git flow - एक अन्य सुविधा शाखा से सुविधा शाखा बनाएँ


85

मैं git flowकुछ समय के लिए उपयोग कर रहा हूँ । मैं एक विशिष्ट उपयोग के मामले के बारे में जानने के लिए उत्सुक हूं।

मेरी एक परियोजना के लिए मेरे पास एक नई वेबसाइट की सुविधा के लिए एक टिकट है। यह टिकट कई उप-कार्यों पर निर्भर करता है। मैं मुख्य टिकट के लिए एक सुविधा शाखा बनाना चाहता हूं, और फिर प्रत्येक उप-कार्य के लिए मूल सुविधा शाखा से एक सुविधा शाखा बनाना चाहता हूं।

मान लें कि मेरे पास एक टिकट PROJ-500 है और मैं इसके लिए एक सुविधा शाखा बनाता हूं

git flow feature start PROJ-500

तब मैं टिकट एकीकृत करना चाहते हैं PROJ-501के माध्यम से PROJ-515में PROJ-500में पूरी बात एकीकृत करने से पहले develop। क्या मेरे लिए ऐसा कुछ करने का कोई तरीका है

git flow feature start PROJ-511 -b PROJ-500

फिर समय के साथ ये उप-कार्य पूर्ण हो जाते हैं और जब उनकी विशेषता समाप्त हो जाती है, तो शाखा को विलय कर दिया जाता है PROJ-500

git flow feature finish PROJ-511

उपरोक्त आदेश विलय होगा PROJ-511मेंPROJ-500

और एक बार जब सभी उप-कार्य पूरे PROJ-500हो जाएंगे तो समाप्त हो जाएंगे और विलय हो जाएंगे develop

इस तरह से नई वेबसाइट सुविधा को एक इकाई के रूप में विकसित किया जा रहा है, न कि टुकड़ों की तरह।


क्या यह ऐसा नहीं करता है? git flow feature start PROJ-511 PROJ-500? डेरेक के जवाब में आपने जो लिंक पोस्ट किया है, वह बताता है कि यह होना चाहिए।
पॉल हिक्स

जवाबों:


117

आप उप-सुविधा शाखा बना सकते हैं

git flow feature start PROJ-511 feature/PROJ-500

लेकिन यदि आप करते हैं तो आप शाखा को मुख्य फीचर शाखा में वापस मर्ज करने के लिए GitFlow टूल का उपयोग नहीं कर सकते

git flow feature finish PROJ-511

इस फीचर को मर्ज कर दिया जाएगा develop। एर्गो उप-सुविधाएँ समर्थित नहीं हैं , आपको इसे मैन्युअल रूप से करने की आवश्यकता है।

विकल्प: आवश्यकता नई नहीं है, हालांकि। वहाँ एक खुला मुद्दा है और साथ ही एक कांटा परियोजना के अलावा अन्य शाखाओं में परिष्करण सुविधाओं का समर्थन करने का दावा है develop। मुझे उस सुविधा के कार्यान्वयन के साथ एक पुल अनुरोध भी मिला । आप उस संशोधन को आजमाना चाहते हैं और देख सकते हैं कि आप इससे खुश हैं।


अपडेट 2019-12-13: जैसा कि उपयोगकर्ता Matěj Kžíž ने अपनी टिप्पणी में उल्लेख किया है, उपयोगकर्ता टोनी केमिट ने खान के कुछ महीने बाद यहां एक उत्तर लिखा है , जो मूल gitflow उत्पाद के विकल्प के रूप में gitflow-avh की ओर इशारा करता है । यह ऊपर दिखाए गए सिंटैक्स के साथ बॉक्स से बाहर की सुविधाओं का समर्थन करता है। कुछ साल बीत चुके हैं और आजकल AVH संस्करण विंडोज के लिए Git की सामान्य स्थापना का हिस्सा है, मैंने इसे अपने स्थानीय बॉक्स पर सत्यापित किया और उप-सुविधा विकल्प का परीक्षण किया। विंडोज उपयोगकर्ताओं के लिए Ie यह Git इंस्टॉलेशन के ठीक बाद काम करता है।


1
@pymarco: उत्तर स्वीकार करने के लिए धन्यवाद। हालांकि मैं उत्सुक हूं: क्या आपने किसी विकल्प की कोशिश की है? यदि हां, तो कौन सा और क्या परिणाम था? क्या यह उम्मीद के मुताबिक काम करता है? हो सकता है कि अन्य पाठक आपके अनुभव से कुछ सीख सकें। :-)
क्रायडेक्स

क्षमा करें, लेकिन मेरे पास इस पर लौटने का समय नहीं है। मैं कुछ बिंदु पर कोशिश करूंगा।
pymarco

3
क्यों होता है पतन? डाउनवोट्स का उपयोग बुरी तरह से लिखित, मैला जवाब देने के लिए किया जाता है, जो अनुसंधान प्रयास या ज्ञान का कोई संकेत नहीं दिखाता है। कोई बात नहीं धन्यवाद।
क्राइगाक्स

यदि आप gitflow-avh संस्करण का उपयोग करते हैं तो stackoverflow.com/a/29353800/472611 @ tony-chemit उत्तर पर कम देखें
Matěj

31

जैसा कि मैंने समझा, gitflow काफी छोड़ दिया है।

gitflow-avh इसकी जगह लेता है और इस सुविधा को प्रदान करता है (देखें https://github.com/petervanderdoes/gitflow#creating-featurereleasehotfixsupport-branches )।

मैं बस कोशिश करता हूं और यह मेरे लिए अच्छा है।

git flow feature start PROJ-511 feature/PROJ-500
git flow feature finish PROJ-511

PROJ-511 को फीचर / PROJ-500 में मिला दिया गया ।


11

जैसा कि पहले ही उल्लेख किया गया है, हम किसी भी आधार शाखा के साथ एक नई सुविधा शुरू कर सकते हैं

git flow feature start PROJ-511 feature/PROJ-500

और उप सुविधा को समाप्त करने के लिए हम अपनी सुविधा शाखा का उपयोग करने के लिए git flow कॉन्फ़िगरेशन को अस्थायी रूप से बदल सकते हैं develop:

git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511

इस तरह, git flow सभी कमांड्स और sanity check चलाता है। अंत में, कॉन्फ़िगर को पुनर्स्थापित करने के लिए, हम चला सकते हैं

git flow config set develop develop 

9

अद्यतन (5 नवंबर, 2020): जैसा कि यहां नए उत्तर में बताया गया है , यह gitflow-avh के साथ संभव है जिसने मूल गिट प्रवाह को बदल दिया है।

===================

मूल उत्तर:

मुझे नहीं लगता कि git flow में इसके लिए कोई विधि है, लेकिन यह सिर्फ git के साथ काफी सरल है।

git checkout PROJ-500
git checkout -b PROJ-511
...do your PROJ-511 work...
git checkout PROJ-500
git merge PROJ-511
git branch -d PROJ-511

2
जवाब देने के लिए धन्यवाद डेरेक। हां, मैं उस वर्कफ़्लो का अनुसरण कर सकता हूं। लेकिन git flow कई कमांड्स और संन्यास जांचों को अतिक्रमण करता है जिन्हें मैं उप-सुविधा विकास के लिए उपयोग करना पसंद करता हूं। उदाहरण के लिए यहाँ git-flow-feature का लिंक है - github.com/nvie/gitflow/blob/develop/git-flow-feature
pymarco
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.