2010-10-25 7 views
7

संभव डुप्लिकेट:
What is the difference between a tag and a branch in git?टैग और शाखा के बीच गिट के साथ क्या अंतर है?

मुझे क्या करना चाहते हैं मेरे कोड के विभिन्न संस्करणों के लिए चौकियों पैदा करते हैं। तो एक बार जब मैं काम करता हूं, तो मैं कहना चाहता हूं, "ठीक है, इस बिंदु पर कोड में, यह संस्करण 0.1 पूर्ण हो गया है"। और फिर मैं एक गुच्छा अधिक काम कर सकता हूं और इसे फिर से कर सकता हूं और कह सकता हूं, "ठीक है, यह बिंदु 0.2 पूर्ण हो गया है"।

मुझे पता है कि एक शाखा और एक टैग बनाने के लिए ... मैं बस के अंतर को समझने नहीं है, और जो एक मैं क्या चाहते हो जाएगा;)

धन्यवाद

+4

डुप्लिकेट [टैग और गिट में एक शाखा के बीच क्या अंतर है?] (Http://stackoverflow.com/questions/1457103/what-is-the-difference-between-a-tag-and-a -ब्रैंच-इन-गिट) पूछने से पहले एक खोज क्यों नहीं करें? –

उत्तर

5

एक टैग का प्रतिनिधित्व करता है समय में एक पल में विशेष शाखा का एक संस्करण। एक शाखा विकास के एक अलग थ्रेड का प्रतिनिधित्व करती है जो को अन्य विकास समान कोड आधार पर प्रयासों के साथ मिल सकती है।

स्रोत: This duplicate question

आप जो चाहते हैं वह शायद टैग है।

+0

धन्यवाद, यह अच्छी तरह से काम करता है। यह भ्रमित है क्योंकि जब मैं जिथब जाता हूं, तो मुझे संस्करण संख्याओं के साथ कई शाखाएं मिलती हैं ... इसलिए मैं उलझन में था। – egervari

5

दोनों शाखाएं और टैग अनिवार्य रूप से इंगित करने के लिए संकेतक हैं। बड़ा अंतर यह है कि जब आप नई प्रतिबद्धताओं को जोड़ते हैं तो एक शाखा को बदलना होता है, और एक विशेष महत्व के रूप में एक बिंदु को चिह्नित करने के लिए एक टैग को एक विशेष प्रतिबद्धता के लिए जमा किया जाता है। मेरी पसंदीदा Git संसाधनों में से एक, Pro Git से:

सबसे VCSs तरह

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

A branch in Git is simply a lightweight movable pointer to one of these commits. 
-2

टैग Git में एक मौलिक निर्माण खंड हैं; शाखाएं नहीं हैं। यह सुनिश्चित करने के लिए गिट चेक करता है कि एक बार प्रतिबद्धता पर इंगित करने के बाद टैग लगातार बने रहें, कभी नहीं बदलें। दूसरी तरफ एक शाखा एक प्रतिबद्धता के लिए एक संदर्भ या सूचक है, और इसे स्वतंत्र रूप से एक अलग प्रतिबद्धता पर इंगित करने के लिए अद्यतन किया जा सकता है।

+2

"टैग गिट में एक मौलिक बिल्डिंग ब्लॉक हैं; शाखाएं नहीं हैं।" "मौलिक" का कोई अर्थ नहीं है जिसके लिए यह कथन सही है। विशेष रूप से, शाखाओं के बिना गिट में उपयोगी काम करना असंभव है, लेकिन बिना टैग के वहां बहुत सी सरल गिट परियोजनाएं हैं। –

0

मान लें कि आपके पास है - सुपर विस्मयकारी उत्पाद v1.0 जो स्थिर है और एक गिट भंडार में प्रतिबद्ध है।

आप शाखा v1.0 है कि में बग फिक्स और परिवर्तन करते हैं और आप उनकी तरह सामान के साथ टैग:

  • पर यह समस्या नहीं काम मद 1341 - बग ...

  • इस संस्करण आइटम 234324 फिक्स करता है - बग ...

  • अंतिम v1.0

ऊपर वाले सभी टैग कोड (एक लेबल) प्रतिबद्ध जब बनाया गया था के राज्य का प्रतिनिधित्व कर रहे हैं। इसलिए, जब आप v1.5 बनाते हैं और v 1.0 के लिए एक बग आता है, तो आप टैग अंतिम v1.0 लेते हैं और उस पर बग का परीक्षण करते हैं।

अभी! आप सुपर विस्मयकारी उत्पाद की अंतर्निहित डेटा एक्सेस को बदलने का निर्णय लेते हैं। आप क्या करते हैं? आप शाखा v1.0 और सुपर विस्मयकारी उत्पाद नई डीएएल शाखा नामक एक नई शाखा बनाते हैं।

टैग दैनिक दैनिक गतिविधियों के स्नैपशॉट के लिए हैं। शाखाएं अधिक बड़े पैमाने पर परिवर्तन के लिए हैं।

+1

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

संबंधित मुद्दे