मैं वास्तव में इस स्थिति में हूं, लेकिन मैंने थोड़ा और अधिक जटिल के लिए विकल्प चुना, हालांकि जरूरी नहीं कि गिट के साथ अधिक जटिल वर्कफ़्लो हो।
पहले उद्देश्य उद्देश्य तरीके से सीखा था इसलिए मैंने कुछ मात्रा में खोज की। फिर आपके द्वारा वर्णित वर्कफ़्लो के लिए बहुत अधिक वापस लौट आया।
थोड़ी देर के बाद यह काम करना मुश्किल हो गया क्योंकि कुछ स्थितियों के कारण भी मुझे बुरी आदतें मिलीं जो एक टीम में शामिल होने के बाद मुझे तोड़ना मुश्किल होगा।
इसलिए मैंने निम्नलिखित के लिए समझौता किया:
- काम करने के लिए स्थानीय भंडार।
- आवेदन के लिए एक स्थिर ट्रंक के रूप में मास्टर शाखा
- प्रत्येक सुविधा / रिफ्लेक्टर के लिए एक शाखा, मूल रूप से प्रत्येक बड़े बदलाव के लिए एक शाखा जो की जाएगी।
- शाखा के स्थिर होने पर ट्रंक में वापस आ जाएं और सभी परीक्षण पास हो जाएं।
मैं एक git हब खाता भी सेट करता हूं जहां मैं ट्रंक को सिंक्रनाइज़ करता हूं। इसने मुझे आसानी से विभिन्न कंप्यूटरों पर काम करना शुरू कर दिया। यह आवश्यकता के अनुसार था, लेकिन मुझे उन बगों को खोजने की अनुमति दी जो पर्यावरण से बंधे थे, जिनमें मैं अन्य कंप्यूटरों पर उपलब्ध नहीं था। इसलिए अब मैं कम से कम एक बार एक अलग "कुंवारी" प्रणाली पर एक परियोजना की कोशिश करना एक आदत बना देता हूं। जब ग्राहक को तैनात करने का समय आता है तो मुझे बहुत अधिक सिरदर्द होता है।
- मैं हर संस्करण को टैग करता हूं जो इसे एक अथक संस्करण के रूप में जीथब में बनाता है।
- यदि ग्राहक को जारी किया जाता है तो मैं ग्राहक द्वारा घोषित बग फिक्स के लिए दूसरा स्थिर ट्रंक बनाने के लिए इस संस्करण से शाखा करूंगा।
पहले कई शाखाएँ ओवरकिल की तरह लग रही थीं, लेकिन वास्तव में इससे बहुत मदद मिली। मैं एक शाखा में एक विचार शुरू कर सकता था, उस पर कुछ समय के लिए काम कर सकता था और जब मैंने हलकों को चलाना शुरू किया तो मैंने कुछ और काम करने के लिए दूसरी शाखा शुरू की। बाद में एक विचार आया कि मैं आधी बेक्ड शाखा में वापस आऊंगा और इस विचार का पता लगाऊंगा। इसने मुझे बहुत अधिक उत्पादक बना दिया क्योंकि मैं बहुत तेज़ी से चमकती और विचारों का अभिनय कर सकता था और देख सकता था कि यह काम करता है या नहीं। जीआईटी के साथ शाखाओं को बदलने की लागत मेरे कोड आधार के साथ बहुत कम है। उन्होंने कहा कि मुझे अभी भी अपने इतिहास को साफ करने के लिए रिबेस की अवधारणा में महारत हासिल करना है लेकिन जब से मैं अकेला हूं मुझे संदेह है कि मुझे वास्तव में इसकी आवश्यकता है। इसे "सीखने के लिए अच्छा" के रूप में धक्का दिया।
जब सभी शाखाएँ जटिल हो गईं तो मैंने परिवर्तनों के वृक्ष को खींचने के लिए लॉग विकल्प की खोज की और देखा कि कौन सी शाखा कहाँ है।
लंबी कहानी छोटी, git SVN, CVS या (brrr) TFS की तरह नहीं है। ब्रांचिंग बहुत सस्ती है और गलतियाँ करना जो काम खत्म कर देगा वास्तव में बहुत मुश्किल है। केवल एक बार मैंने कुछ काम खो दिया और यह इसलिए था क्योंकि मैंने अपने कमिट्स को बहुत बड़ा बना दिया था (ऊपर बुरी आदतों को देखें)। यदि आप अक्सर कमिट करते हैं, तो छोटे-छोटे चिट्स द्वारा निश्चित रूप से आपका सबसे अच्छा सहयोगी होगा।
मेरे लिए git ने मेरे दिमाग को खोल दिया कि स्रोत नियंत्रण वास्तव में क्या है। इससे पहले कि कुछ और पाने का प्रयास किया गया था, git पहला है, जो मेरे दिमाग में है, उसे मिल गया। उस ने कहा, मैंने अन्य डीवीसीएस की कोशिश नहीं की, संभवतः यह कथन पूरे परिवार के लिए व्यापक हो सकता है।
एक आखिरी सलाह, कमांड लाइन आपका दोस्त है। यह कहने के लिए नहीं कि चित्रमय उपकरण अच्छे नहीं हैं, इसके विपरीत, लेकिन मैं वास्तव में जब मैं कमांड लाइन के लिए नीचे गिरा और खुद को आज़माने के लिए पकड़ लिया। यह वास्तव में बहुत अच्छी तरह से बनाया गया है, बहुत व्यापक सहायता प्रणाली के साथ पालन करना आसान है। मेरी सबसे बड़ी समस्या विंडोज़ में बदसूरत कंसोल से बंधी हुई थी जब तक कि मुझे विकल्प नहीं मिला।
अब मैं दोनों का उपयोग करता हूं, Git के साथ ग्रहण का एकीकरण यह देखने के लिए कि वास्तविक समय में क्या चल रहा है और कुछ ऑपरेशन करते हैं जैसे diffs, किसी फ़ाइल के लिए इतिहास का पता लगाना, आदि और ब्रांचिंग, विलय, पुश करने, प्राप्त करने और अधिक जटिल लॉग ट्री के लिए कमांड लाइन । कुछ बुनियादी स्क्रिप्टिंग और मैं स्रोत नियंत्रण के संबंध में इतना उत्पादक कभी नहीं रहा हूं और मेरे स्रोत पर मेरा इतना नियंत्रण कभी नहीं था।
सौभाग्य, आशा है कि यह मदद की।