मैं शाखाओं को संग्रहीत नहीं करूंगा। एक और तरीका रखो, शाखाएं खुद को संग्रहित करती हैं। आप जो चाहते हैं वह यह है कि पुरातत्वविदों के लिए प्रासंगिक जानकारी सुनिश्चित करने के लिए विश्वसनीय तरीकों से पाया जा सकता है। इसमें विश्वसनीय है कि वे दैनिक विकास में सहायता करते हैं और काम पूरा होने की प्रक्रिया में एक अतिरिक्त कदम नहीं जोड़ते हैं। यह है, मुझे विश्वास नहीं है कि लोग एक शाखा के साथ एक बार टैग जोड़ने के लिए याद रखेंगे।
यहाँ दो सरल कदम हैं जो पुरातत्व और विकास में बहुत मदद करेंगे ।
- प्रत्येक कार्य शाखा को एक साधारण नामकरण सम्मेलन का उपयोग करते हुए समस्या ट्रैकर में संबद्ध मुद्दे के साथ लिंक करें ।
- हमेशा
git merge --no-ffकार्य शाखाओं को मर्ज करने के लिए उपयोग करें; आप चाहते हैं कि मर्ज कमिट और हिस्ट्री बबल, यहां तक कि सिर्फ एक कमिट के लिए।
बस। क्यों? क्योंकि एक कोड पुरातत्वविद् के रूप में, शायद ही कभी मैं यह जानना चाहता हूं कि एक शाखा में क्या काम किया गया था। अभी तक यह अक्सर चिल्ला रहा है कि सभी नौ नरक में इस तरह से लिखा कोड है ?!मुझे कोड बदलने की आवश्यकता है, लेकिन इसमें कुछ अजीब विशेषताएं हैं, और मुझे कुछ महत्वपूर्ण तोड़ने से बचने के लिए उन्हें पहेली बनाने की आवश्यकता है।
अगला चरण git blameसंबद्ध कमिट को ढूंढना है और फिर उम्मीद है कि लॉग संदेश व्याख्यात्मक है। अगर मुझे गहराई से खुदाई करने की ज़रूरत है, तो मुझे पता चलेगा कि क्या काम एक शाखा में किया गया था और शाखा को संपूर्ण रूप से पढ़ा था (इश्यू ट्रैकर में इसकी टिप्पणी के साथ)।
आइए git blameबताते हैं कमिटेड XYZ पर। मैं एक Git इतिहास ब्राउज़र (gitk, GitX git log --decorate --graph, आदि ...) खोलता हूं, XYZ को कमिट करता हूं और देखता हूं ...
AA - BB - CC - DD - EE - FF - GG - II ...
\ /
QQ - UU - XYZ - JJ - MM
वहाँ मेरी शाखा है! मुझे पता है कि QQ, UU, XYZ, JJ और MM सभी एक ही शाखा के हिस्से हैं और मुझे उनके लॉग संदेशों को विवरण के साथ देखना चाहिए। मुझे पता है कि जीजी एक मर्ज कमिटमेंट होगा और उस शाखा का नाम होगा जो उम्मीद करता है कि ट्रैकर में एक मुद्दे के साथ जुड़ा हुआ है।
यदि, किसी कारण से, मैं एक पुरानी शाखा ढूंढना चाहता हूं जिसे मैं चला सकता हूं git logऔर मर्ज कमेटी में शाखा का नाम खोज सकता हूं । यह बहुत बड़े रिपॉजिटरी पर भी काफी तेज है।
यही मेरा मतलब है जब मैं कहता हूं कि शाखाएं खुद को संग्रहीत करती हैं।
प्रत्येक शाखा को टैग करने से चीजों को करने में अनावश्यक काम जुड़ जाता है (एक महत्वपूर्ण प्रक्रिया जिसे बेरहमी से सुव्यवस्थित किया जाना चाहिए), सैकड़ों टैग के साथ टैग सूची (प्रदर्शन की बात नहीं, लेकिन मानव पठनीयता) को मसूड़ों कि केवल कभी-कभी बहुत उपयोगी होते हैं, और। t पुरातत्व के लिए भी बहुत उपयोगी है।
git checkout [rev] file