जीटफ्लो का उपयोग करते समय एक साफ गिट इतिहास रखें - विकसित होने पर अनियंत्रित होता है


9

Gitflow का उपयोग करना, जब एक release-1.0.0शाखा बनाते हैं और इसे दोनों में विलय करते हैं masterऔर develop, दोनों शाखाओं में एक लापता प्रतिबद्धता होगी:

  • masterअभिप्रेत है कि जहां release-1.0.0मर्ज किया गया थाdevelop
  • developअभिप्रेत है कि जहां release-1.0.0मर्ज किया गया थाmaster

इसके बजाय, बनने hotfix-1.0.1और विलय होने के बाद master, जब इसे मर्ज किया जा रहा है, तो मर्ज करने के लिए developआने वाली कमेटियों में पिछली कमेटी को शामिल किया जाएगा जहाँ release-1.0.0विलय किया गया था master; तो यह इस तरह दिखेगा:

User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.

* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug

यदि यह भ्रामक लगता है, तो आप आसानी से यह देख सकते हैं developकि आपके द्वारा देखा गया यह आमतौर पर कमिट्स के एक जोड़े के पीछे है master(भले ही विकसित हो, सैद्धांतिक रूप से, यह केवल आगे होना चाहिए क्योंकि यह मुख्य शाखा है। उन कमिट्स का विलय होता release-x.x.xहै master)।

एक स्वच्छ इतिहास को बनाए रखने के लिए इसे कैसे संभाला जाना चाहिए?


कृपया "स्वच्छ इतिहास" को परिभाषित करें।
Jace Browning

3
एक स्वच्छ इतिहास चाहते हैं? Gitflow का उपयोग न करें। परिभाषा के अनुसार यह आपके इतिहास को प्रदूषित करता है। इसके बजाय, इस बारे में सोचें कि आपको वास्तव में क्या चाहिए और उसके आसपास एक वर्कफ़्लो का निर्माण करना है, इसलिए यह वास्तव में फिट बैठता है कि आप कैसे काम करना चाहते हैं।
FP

1
मास्टर में विलय एक "कॉपी" होगा, इसे विकसित करने के लिए विलय करने की कोई आवश्यकता नहीं है। पिछली रिलीज़ ब्रांच से हॉट फ़िक्स करें, मास्टर नहीं, और वहाँ से दोनों में मर्ज करें, और आपको समस्या नहीं होगी। मास्टर मॉडल में बहुत कुछ नहीं जोड़ रहा है ताकि आप वास्तव में इसे पूरी तरह से छोड़ सकते हैं, आईएमओ।
एक्सल

@axl मैं समझता हूं कि आपका क्या मतलब है, लेकिन मैं gitflow का पालन करने की कोशिश कर रहा हूं कि यह दस्तावेजीकरण के जितना करीब हो सके। मैं किसी भी तरह का "हैकज" नहीं कर रहा हूं क्योंकि चूंकि गिटफ्लो पहले से ही कई डेवलपर्स द्वारा अपनाया गया है, इसलिए उन्हें पहले से ही इस सरल चीज़ के लिए एक समाधान होना चाहिए
क्रिस्टोफर फ्रांसिस्को

GitHub और अन्य स्थानों पर GitFlow के साथ विभिन्न मुद्दों को हल करने के तरीके के बारे में कई चर्चाएं हैं। कभी कभी वहाँ सिर्फ एक चांदी की गोली नहीं है।
एक्सल

जवाबों:


4

मुझे लगता है कि दो "मुख्य" शाखाओं से बचने के लिए एक अच्छा तरीका है, मास्टर और विकसित एक तरह से बेमानी हैं। यह यहाँ अच्छी तरह से समझाया cactus-flowगया है, लेखक द्वारा ब्रांडेड है।

कुछ बिंदु git-flow के विपरीत खड़े हैं:

  • सिर्फ एक मुख्य शाखा
  • केवल तेजी से आगे विलय

मेरे लिए पिछले एक महत्वपूर्ण है, क्योंकि लंबे समय तक गिट-फ्लो का उपयोग करने के बाद मैं यह देखना बाकी हूं कि --no-ffमर्ज के बारे में क्या उपयोगी है ।

मैं gitflow का अनुसरण करने की कोशिश कर रहा हूँ, क्योंकि यह दस्तावेज़ीकरण है। मैं इसके बजाय किसी भी तरह का "हैकज" नहीं कर रहा हूं, क्योंकि चूंकि gitflow पहले से ही कई कई डेवलपर्स द्वारा अपनाया गया है, इसलिए उन्हें पहले से ही इस सरल चीज़ का समाधान करना चाहिए

IMHO यह आपकी बड़ी गलती है। आपके पास जितना संभव हो सके, गिट-फ्लो से चिपके रहने का कोई कारण नहीं है। इसका उपयोग हजारों परियोजनाओं में किया जा सकता है लेकिन यह आपका प्रभावित नहीं करता है, यह अच्छा नहीं बनाता है।

Git-flow एक अच्छा शुरुआती बिंदु है, लेकिन आपको इसे अपने टूल और वर्कफ़्लो के बजाय अन्य तरीके से बदलने के बारे में सोचना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.