Git विषय शाखा क्या है?


137

Git विषय शाखा क्या है? क्या यह किसी तरह से एक साधारण शाखा से अलग है? क्या कोई शाखाएं हैं जो विषय शाखाएं नहीं हैं?

जवाबों:


114

विषय शाखाएँ आमतौर पर हल्की शाखाएँ होती हैं जिन्हें आप स्थानीय रूप से बनाते हैं और इनमें एक नाम होता है जो आपके लिए सार्थक होता है । वे वे हैं जहाँ आप बग फिक्स या सुविधा के लिए काम कर सकते हैं (उन्हें फीचर शाखा भी कहा जाता है), जिन्हें पूरा होने में कुछ समय लगने की उम्मीद है।

एक अन्य प्रकार की शाखा "रिमोट शाखा" या "रिमोट-ट्रैकिंग शाखा" है। इस प्रकार की शाखा किसी और के काम के विकास का अनुसरण करती है और आपके स्वयं के भंडार में संग्रहीत होती है। आप समय-समय पर इस शाखा को अपडेट करते हैं (उपयोग करके git fetch) कि कहीं और क्या हो रहा है। जब आप हर किसी के बदलाव को पकड़ने के लिए तैयार होते हैं, तो आप git pullभ्रूण और मर्ज दोनों का उपयोग करेंगे ।

मैंने एक अन्य प्रकार की शाखा भी देखी है जो मूल रूप से एक ही रिपॉजिटरी में फ़ाइलों का एक पूरी तरह से अलग पेड़ है। उदाहरण के लिए, Git भंडार में ही सिर नामित होता है आदमी और एचटीएमएल कि पूरी तरह से अलग सामग्री होती है मास्टर शाखा। मुझे नहीं पता कि इस प्रकार की शाखाओं को आमतौर पर क्या कहा जाता है।


6
मैं देख रहा था कि आम पूर्वजों के बिना दो शाखाएँ कैसे होती हैं और यह पाया: madduck.net/blog/…
निकोलस

1
अलग पेड़ लिखो, मेरा मानना ​​है कि उन्हें कभी-कभी एक अनाथ शाखा कहा जाता है, उसी तरह जैसे कि जीथब आपको सलाह देता है कि आप मैन्युअल रूप से एक जीथब पृष्ठ बनाएं
अधिकतम

1
आप क्यों कहते हैं कि विषय शाखा को स्थानीय होना चाहिए? यह सोचने का कोई कारण नहीं है कि आप विषय शाखा को आगे नहीं बढ़ाना चाहते हैं। और, इसी तरह, अन्य डेवलपर्स अपनी विषय शाखाएं बना सकते हैं और आप उन्हें खींचना चाहते हैं। यह उत्तर शाखाओं के दो पूरी तरह से असंबंधित गुणों को भ्रमित करने वाला प्रतीत होता है: चाहे कोई शाखा स्थानीय हो या न हो, विषय शाखा है या नहीं।
जीन-पॉल काल्डेरोन 16

@ जीन पॉल कैल्डेरोन: मुझे नहीं लगता कि मैंने कहा कि विषय शाखाओं को स्थानीय होना चाहिए। यदि आप एक से अधिक डेवलपर काम कर रहे हैं, तो आप निश्चित रूप से एक विषय शाखा को ट्रैक कर सकते हैं।
ग्रेग हेविल जिल

2
मुझे लगता है कि उत्तर का तात्पर्य है। क्यों "... जो आप स्थानीय रूप से बनाते हैं ..." और "... एक नाम है जो आपके लिए सार्थक है।" क्या "विषय शाखा" बनाता है? आपके उत्तर का पहला वाक्य दृढ़ता से बताता है कि ये एक विषय शाखा की महत्वपूर्ण विशेषताएं हैं, लेकिन वे वास्तव में एक शाखा के "विषय" के लिए दोनों orthogonal हैं या नहीं। निम्नलिखित पैराग्राफ जहां आप "दूरस्थ शाखाओं" का वर्णन करते हैं, इस विचार को फिर से महसूस करते हैं कि विषय शाखा का "स्थानीय रूप से बनाया गया" भाग महत्वपूर्ण है। मेरा सुझाव है कि इन असंबंधित शाखा लक्षणों पर जोर देने के लिए इस उत्तर पर फिर से ध्यान दें।
जीन-पॉल काल्डेरोन

81

यह तकनीकी शब्द नहीं है; यह सिर्फ एक शाखा को संदर्भित करता है जिसे एक विशिष्ट सुविधा को लागू करने या बग को ठीक करने के लिए बनाया गया था। "विषय" शाखा के निर्माण का कारण है, अनिवार्य रूप से।


2
हां। एक व्यक्तिगत शाखा के विपरीत, जहाँ आपकी शाखाएँ हैं: बॉब, ऐलिस, चटाई, आदि
webmat

... तो विषय शाखा और सुविधा शाखा एक ही चीजें हैं, सही?
बेटलिस्टा

@ बिटलिस्ट कम या ज्यादा, हां।
मियादी

28

https://github.com/dchelimsky/rspec/wiki/Topic-Branches यह अच्छी तरह से समझाता है:

एक "विषय" शाखा एक अलग शाखा है जिसका उपयोग आप "एकल विषय" (एक बग फिक्स, एक नई सुविधा, या एक प्रयोगात्मक विचार) पर काम करते समय करते हैं। "मास्टर" के ऊपर सीधे के बजाय विषय शाखा पर काम करने की सलाह दी जाती है क्योंकि:

{... लिंक पर जाएं ...}

इसलिए, इन सभी कारणों से, एकल-प्रतिबद्ध बगफिक्स और जैसे सरल योगदान के लिए भी सबमिशन तैयार करने के लिए एक विषय शाखा का उपयोग करने की सिफारिश की जाती है।

यह नमूना भी उदाहरण देता है। जो मुझे वास्तव में सोचने के लिए मिला, यह शायद वही है जो ज्यादातर दुकानें पहले से ही करती हैं। चुस्त परियोजनाओं के सभी मैं कभी के साथ किया गया है। मैंने वें को उत्कीर्ण किया "यह एक तकनीकी शब्द नहीं है" क्योंकि मुझे लगता है कि यह सिर पर कील मारता है।


4

यह सबसे प्रमुख और महत्वपूर्ण प्रकार की शाखाएं लगती हैं जो विषय शाखाएं नहीं हैं एक प्रमुख, सार्वजनिक रूप से उपलब्ध भंडार पर शाखाएं जारी होंगी, है ना?

यह शायद आपके लिए सही है, लेकिन आपके और उस प्रोजेक्ट के बारे में जो आप सोच रहे हैं; यह Git द्वारा निर्धारित नहीं है।

अधिकांश संस्करण नियंत्रण प्रणाली (विशेष रूप से केंद्रीकृत वाले) एक विशेष वर्कफ़्लो को निर्धारित या लागू करते हैं, जिसमें यह शामिल है कि इसके लिए एक शाखा का उपयोग करने का क्या मतलब है। गिट (और कुछ हद तक सबसे अधिक वितरित वीसीएस) पर विचार करें कि वर्कफ़्लो, किस शाखाओं के लिए उपयोग किया जाता है, कब, क्या अलग रिपोज़ के लिए उपयोग किया जाता है, आदि सभी को उपयोगकर्ताओं और उपयोगकर्ताओं द्वारा चुना जाता है (नीतियों)। तो Git इनको तकनीकी रूप से लागू नहीं करता है।

यह उन चीजों में से एक है, जिसने मुझे सीखने के लिए Git को कठिन बना दिया। ऑलिवर स्टील ने इसे यूजर्स के नजरिए से समझाया, कमिटमेंट पॉलिसी के बारे में लिखा ।

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