बार-बार छोटा, और सार्थक बनाने के लिए सबसे महत्वपूर्ण कारण कोड के इतिहास की समझ में सहायता करना है। विशेष रूप से, यह समझना बहुत मुश्किल है कि अगर समझने योग्य भिन्न उत्पन्न करना मुश्किल है तो कोड कैसे बदल गया है।
विकल्प 1 आपके द्वारा किए गए परिवर्तनों के इतिहास को रोकता है, लेकिन अन्यथा यह किसी भी समस्या का कारण नहीं होगा।
विकल्प 2 आपके द्वारा किए गए परिवर्तनों के इतिहास को संभवतः 1 विकल्प की तुलना में कुछ हद तक कम कर देता है, लेकिन यह स्वयं या दूसरों के लिए अन्य समस्याओं का कारण बन सकता है यदि वे मान लेते हैं या अन्यथा यह निष्कर्ष निकालते हैं कि कमिट अलग-अलग हैं, जैसे स्वतंत्र रूप से अन्य शाखाओं में विलय किया जा सकता है। जब तक एक मजबूत व्यावहारिक कारण नहीं है कि यह विकल्प 1 से अधिक क्यों पसंद किया जाता है, यह इसके मुकाबले कम आदर्श है।
विकल्प 3 सबसे अच्छा है, बाकी सभी समान हैं, लेकिन यदि आपने कहीं और वर्णित किया है, तो ऐसा करने के लिए "अत्यधिक" मात्रा की आवश्यकता होगी या अन्य महत्वपूर्ण लागतों को उठाना होगा, आपको उन लागतों का वजन अपेक्षित लाभ के मुकाबले करना होगा। क्लीनर बनाना।
आपके द्वारा प्रदान की गई जानकारी के आधार पर, मैं विकल्प 1 का विकल्प चुनूंगा। हो सकता है कि आपको अपने परिवर्तनों को करने के लिए संकेत देने के लिए सेटअप रिमाइंडर चाहिए।
प्रोटोटाइप और पुनर्लेखन
एक और विचार, विशेष रूप से एकमात्र प्रोग्रामर होने के बारे में आपके नोट के प्रकाश में, और मेरा संदेह है कि आप अपेक्षाकृत नए कोडबेस पर काम कर रहे हैं, यह संभव है कि जब आप के लिए बदलाव करने के संबंध में विभिन्न आदतों को विकसित करना अच्छा हो मौजूदा कोड को बनाए रखने या बढ़ाने के लिए नए कोड को फिर से प्रोटोटाइप कर रहा है। शायद दोनों के बीच बहुत तीखा विभाजन नहीं है, लेकिन मुझे लगता है कि यह अभी भी एक उपयोगी अंतर है।
जब आप नए कोड का प्रोटोटाइप बना रहे होते हैं, तो जब भी आप अपने परिवर्तनों को सहेजना चाहते हैं, तो लगभग निश्चित रूप से एक शाखा में, लेकिन शायद एक अलग परियोजना में। या शायद पूरी तरह से संस्करण नियंत्रण के बाहर भी काम करते हैं। इसके बजाय आप विभिन्न परिकल्पनाओं या डिज़ाइनों पर विचार करने की व्यवहार्यता के बारे में साक्ष्य जुटाने पर ध्यान केंद्रित कर सकते हैं। मैं अक्सर विभिन्न टूल्स का उपयोग करके छोटे प्रोटोटाइप लिखता हूं, जैसे C # कोड के लिए Visual Studio के बजाय LINQPad।
जब आपने किसी विशेष परिकल्पना या डिज़ाइन को मान्य किया है, तो इसे अपने मुख्य प्रोजेक्ट में फिर से लिखें, आदर्श रूप से एक शाखा में, और छोटे, सार्थक कमिट करें जो दूसरों की समझ को बेहतर बनाएंगे (भविष्य सहित आप) परिवर्तनों की प्रकृति के अनुसार। तुम बना रहे हो