पेशेवर एप्लिकेशन डेवलपर्स GIT और तोड़फोड़ जैसे संस्करण नियंत्रण प्रणालियों का उपयोग कैसे करते हैं?


10

मैं एक शुरुआती डेवलपर हूं और मैं शुरू से सोच रहा हूं कि कैसे अपनी परियोजना की जरूरतों को पूरा करने के लिए, जीआईटी और तोड़फोड़ जैसे व्यावसायिक उपयोग के उपकरण (इन उपकरणों के बारे में मुझे बहुत अच्छी समझ नहीं है)। यदि वे इसका उपयोग करते हैं, तो मैं ऐसा कुछ कैसे सेट करूंगा?

मेरे आवेदन इतने बड़े नहीं हैं और मैं अभी तक एक टीम में काम नहीं कर रहा हूं, क्या वे मेरे लिए बहुत बड़ी मदद करेंगे?

इस साइट पर सवाल हैं कि उपकरणों का उपयोग कैसे किया जाए, लेकिन मुझे शुरुआती समर्थन की आवश्यकता है।


5
गिट और तोड़फोड़ निर्देश के साथ आते हैं; वे मूल रूप से एक भंडार हैं जो एक संरचित तरीके से विकास कोड को संग्रहीत करते हैं। अलग-अलग डेवलपर्स कोड परिवर्तन का पूरा रिकॉर्ड, और एक मजबूत बैकअप सुविधा होने से लाभान्वित होते हैं। प्रोजेक्ट टीमों को समान स्रोत कोड रिपॉजिटरी को साझा करने की क्षमता से लाभ होता है, जो वर्कस्टेशन के बीच सिंक में बदलाव रखते हैं।
रॉबर्ट हार्वे

जवाबों:


13

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

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

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

यहाँ सामान्य रूप से स्रोत नियंत्रण के लिए अंगूठे के कुछ अच्छे नियमों का अच्छा अवलोकन दिया गया है: http://scottonwriting.net/sowblog/archive/2008/11/13/163320.aspx

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


1
एक बिंदु को छोड़कर अच्छा जवाब। मैं निश्चित रूप से तोड़फोड़ की जरूरत वाले सर्वर को नहीं उठाऊंगा क्योंकि यह सबसे बड़ी कमी है, आंशिक रूप से क्योंकि मैंने वास्तव में इसे बिना अक्सर इस्तेमाल किया है; रिपॉजिटरी स्थानीय निर्देशिका में रह सकती है और सेटअप से एकल कमांड है। Git और Subversion के बीच मुख्य अंतर यह है कि Git जैसी वितरित प्रणालियाँ, Subversion जैसे केंद्रीकृत लोगों की तुलना में अधिक लचीली हैं।
जान हुडेक

5

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

जैसे ही आप एक टीम में अन्य लोगों के साथ काम कर रहे होते हैं, लाभ और भी अधिक बढ़ जाते हैं क्योंकि कई लोग एक ही फाइल को बदल सकते हैं और यदि परिवर्तन संघर्ष नहीं करते हैं (उदाहरण के लिए 2 लोग फ़ाइल के विभिन्न वर्गों को बदलते हैं) तो परिवर्तन विलय हो जाएगा खुद ब खुद। यदि कोई संघर्ष होता है तो आप अपने सहयोगियों के बगल में अपने परिवर्तनों को देख पाएंगे और उनके साथ चर्चा करेंगे कि परिवर्तनों को कैसे मर्ज किया जाए।

आप कोडबेस का स्नैपशॉट भी बना सकते हैं (आमतौर पर एक टैग कहा जाता है) जब कोड का एक संस्करण जारी किया जाता है ताकि आप आसानी से मुद्दों को डिबग कर सकें, हालांकि मुख्य स्रोत नई सुविधाओं के साथ आगे बढ़ गया है जो अभी तक जारी नहीं हुए हैं।

यहां कुछ उपयोगी संसाधन दिए गए हैं:

विजुअल स्टूडियो और .NET के साथ तोड़फोड़ और कछुआ एसवीएन को चलाना और चलाना

संस्करण नियंत्रण तोड़फोड़ के साथ


1
+1 नहीं दे रहा है, क्योंकि पहली प्रणाली के रूप में तोड़फोड़ सीखना इन दिनों एक तरह का गर्भ-उत्पादक है जब हर कोई वितरित सिस्टम पर स्विच कर रहा है।
जान हुडेक

3

शुरुआती के लिए ट्यूटोरियल

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

SVN

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

प्रोफेशनल सोर्स कंट्रोल मीट प्रोफेशनल नीड्स

आपका प्रश्न "अपनी परियोजना की जरूरतों को पूरा करने के लिए जीआईटी और तोड़फोड़ जैसे व्यावसायिक उपयोग के उपकरण कैसे हैं?" इस सवाल से निकटता से संबंधित है कि "टीमें एक-दूसरे के तरीके से कैसे काम करती हैं, जबकि अभी भी जितनी जल्दी हो सके काम करती हैं?"

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

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

एक स्थापित स्रोत नियंत्रण भंडार से, पेशेवर अपने मूल कारणों से समस्याओं का निदान करने जैसी अन्य जरूरतों को पूरा कर सकते हैं। यदि कोड के संस्करण थे जो काम करते थे, और नई मिली समस्याएं जो वर्तमान संस्करण में हैं, तो समस्या के होने पर इतिहास में आगे और पीछे कदम बढ़ाना संभव है। SVN में, यह क्षमता अपरिपक्व है, लेकिन Git में अंतिम कार्य / पहली असफलता संस्करण की खोज को git bisect नामक कमांड द्वारा समर्थित किया गया है। समस्या दो संस्करणों के बीच एक स्रोत परिवर्तन के कारण होगी जो कि पूरे कोड आधार की खोज की तुलना में संभवतः बहुत आसान निदान है।

माफ करना, उम्मीद है कि यह स्रोत नियंत्रण का उपयोग करने की दिशा में आपकी मदद करता है।


0

मेरी टीम एक घरेलू टीम संस्करण नियंत्रण प्रणाली का उपयोग करती है। (दुख की बात है कि Git अभी तक आईबीएम i "नेटिव" सोर्स फाइल्स पर काम नहीं करता है) लेकिन व्यक्तिगत रूप से, एक बार जब मैंने उस सिस्टम से स्रोत खींच लिया है, तो मैं अपने विकास के दौरान Git का उपयोग करता हूं, जब तक कि परियोजना पूरी नहीं हो जाती है और मैं इसे वापस जांचता हूं टीम वीसीएस।

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

Git ने विकास के दृष्टिकोण को बेहतर बनाया है।


'गिट आईबीएम पर अभी तक काम करने के लिए प्रतीत नहीं होता है "देशी" स्रोत फ़ाइलें) "- गिट किसी भी फाइल पर काम करना चाहिए। यहाँ क्या समस्या है?
मार्नेन लाइबो-कोसर

@ MarnenLaibow-Koser अधिकांश आईबीएम i डेवलपर्स स्रोत फ़ाइलों के साथ काम कर रहे हैं, जिन्हें हम मूल (विरासत) फ़ाइल सिस्टम QSYS कह सकते हैं, जहां स्रोत फ़ाइलों में एक अंतर्निहित निश्चित लंबाई प्रारूप होता है। प्रत्येक पंक्ति 6 ​​अंकों की क्रम संख्या, 6 अंकों की परिवर्तन तिथि, फिर स्रोत कोड टेक्स्ट लाइन से शुरू होती है। अनुक्रम और परिवर्तन की तारीख बदल सकती है भले ही एक लाइन पर स्रोत कोड नहीं बदला है। समाधान हाल ही में विकसित किए गए हैं। आईबीएम और अन्य अब आईबीएम पर git का समर्थन कर रहे हैं। और यह आईबीएम i पर अन्य IFS फ़ाइल सिस्टम में "सामान्य" स्ट्रीम फ़ाइलों में स्रोत के साथ कोई समस्या नहीं होनी चाहिए।
वारेनटी

हे भगवान, मुझे अस्पष्ट रूप से याद है कि 20 साल पहले एएस / 400 विकास करने से। लेकिन कोई कारण नहीं है, मुझे लगता है, कि Git ऐसी फ़ाइलों के साथ काम नहीं करेगा। आपको मर्ज ड्राइवर लिखने की आवश्यकता हो सकती है जो लाइन नंबरों को छूट देता है, लेकिन ऐसा करना आसान होना चाहिए। (मुझे आश्चर्य है कि अगर आईबीएम ने ऐसा किया है ...)
मर्नेन लाबो-कोसर

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

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