"आज मी तुम्हाला दोन सर्वात लोकप्रिय आवृत्ती नियंत्रण कार्यक्रमांबद्दल सांगणार आहे: SVN आणि Git."

"SVN अंदाजे मी शेवटच्या धड्यात वर्णन केलेल्या पद्धतीने कार्य करते. Git थोडे अधिक क्लिष्ट आहे आणि मी त्यावर अधिक तपशीलवार चर्चा करण्याची योजना आखत आहे."

"तुम्ही मला SVN आणि Git च्या दस्तऐवजीकरणाच्या लिंक देऊ शकता?"

"अर्थात, फक्त एक सेकंद."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (हा फक्त एक उत्कृष्ट नमुना आहे)

"तर, गिट ."

"हे SVN पेक्षा थोडे अधिक क्लिष्ट आहे.  Git सह, प्रत्येक वापरकर्त्याकडे सर्व्हर रेपॉजिटरी व्यतिरिक्त स्वतःचे स्थानिक भांडार असते. "

"मग तुम्ही कुठे वचनबद्ध आहात?"

"वापरकर्ते नेहमी त्यांच्या स्थानिक भांडारासाठी वचनबद्ध असतात."

"पण सर्व्हरच्या भांडाराचे काय?"

"स्थानिक आणि सर्व्हर रेपॉजिटरीज सिंक्रोनाइझ करण्यासाठी, विशेष पुल आणि पुश कमांड्स आहेत .

"यामागे एक कारण आहे. काहीवेळा प्रोग्रामरला स्वतःच्या बाजूने बरेच काम करावे लागते, ज्यात शेअर्ड रिपॉजिटरीमध्ये जोडण्याआधी अनेक शेकडो कमिट समाविष्ट असू शकतात."

"एसव्हीएनमध्ये हे करण्यासाठी, तुम्हाला वेगळी शाखा सुरू करावी लागेल आणि नंतर ती ट्रंकमध्ये विलीन करावी लागेल."

"गिटसह, तुम्ही नेहमी स्थानिक रेपॉजिटरीमध्ये कमिट करता आणि नंतर सर्व बदल पूर्ण झाल्यावर सर्व्हरवरील सेंट्रल रिपॉझिटरीमध्ये बॅच म्हणून पाठवता."

"जेव्हा तुम्ही फक्त थोडे कोड लिहिता तेव्हा ही पद्धत थोडी जास्त वाटू शकते. परंतु जेव्हा तुमची कार्ये इतकी मोठी असतात की ती आठवडाभर पसरतात, तेव्हा तुम्हाला समजते की तुम्ही वचनबद्धतेशिवाय संपूर्ण वेळ लिहू शकत नाही."

"तुम्ही फक्त दोन आठवडे का काम करू शकत नाही आणि नंतर सर्व्हरवर तुमचे बदल एकदा का करू शकत नाही?"

"ठीक आहे, आवृत्ती नियंत्रण कार्यक्रम खूप सुविधा देतो."

"कल्पना करा की तुम्ही दररोज वचनबद्ध आहात, आणि 10 व्या दिवशी तुम्हाला कळले की तुम्ही गेल्या दोन दिवसात केलेले बदल नियोजित प्रमाणे कार्य करणार नाहीत. आणि तुम्हाला 8 व्या दिवशी तुमच्याकडे असलेल्या कोडवर परत जायचे आहे आणि कार्याकडे जाण्याची इच्छा आहे. वेगळ्या पद्धतीने."

"तुम्ही गेल्या दोन दिवसांत स्थानिक रिपॉझिटरीमध्ये केलेले बदल परत करा आणि इच्छित स्थितीत परत या. याला रोलबॅक ऑपरेशन म्हणून ओळखले जाते."

"तुम्ही मला सांगत आहात की तुम्ही ते करू शकता?"

"होय. याशिवाय, कमिट हिस्ट्री संग्रहित केल्यामुळे, काहीतरी केव्हा आणि का केले गेले आणि कोणाद्वारे, संबंधित वैशिष्ट्ये/बग आणि या कामाचा भाग म्हणून कोणत्या दहा फाइल्स एकाच वेळी सुधारित केल्या गेल्या हे तुम्ही शोधू शकता."

"समजा एखाद्याच्या बग फिक्सने दुसर्‍याचा कोड खंडित केला आहे. तुम्ही फक्त कोड परत ( रोलबॅक ) करू शकता आणि बदल कधीच झाला नसल्याप्रमाणे पुढे जाऊ शकता."

"ठीक आहे, ते छान आहे. मला खात्री आहे. हे सर्व कसे कार्य करते हे स्पष्ट करणारी काही उदाहरणे तुम्ही मला दाखवू शकाल का?"

"नक्की."

"तुम्ही तुमच्या स्थानिक संगणकावर केंद्रीय भांडार कसे क्लोन करता ते येथे आहे :"

कमिट आणि शाखा - १

"म्हणून, चेकआउट ऑपरेशनची यापुढे आवश्यकता नाही."

"हो. आणि येथे पुश ऑपरेशन्सची उदाहरणे आहेत:"

कमिट आणि शाखा - 2

"आणि पुल ऑपरेशन्स:

कमिट आणि शाखा - 3

"अहो. ते कमी-अधिक प्रमाणात अर्थपूर्ण आहे."

"तसे, GitHub नावाची एक छान सेवा आहे."

"कोणताही प्रोग्रामर तेथे नोंदणी करू शकतो आणि त्यांचे स्वतःचे Git भांडार तयार करू शकतो. मी सुचवितो की तुम्ही त्याच्याशी अधिक परिचित व्हा."

"येथे काही उपयुक्त दुवे आहेत:"

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"लक्षात ठेवा की तेथे बरेच गिट क्लायंट आहेत."

"प्रथम, GitBash आहे   , जे तुम्हाला मजकूर आदेश प्रविष्ट करू देते."

"मग TortoiseGit आहे , जो Windows Explorer मध्ये तयार केलेला एक चांगला प्रोग्राम आहे. तो तुम्हाला थेट एक्सप्लोररमध्ये Git रिपॉझिटरीमधील फाइल्ससह काम करू देतो."

"IntelliJ IDEA Git ला सपोर्ट करते आणि तुम्हाला सर्व प्रकारच्या क्लिष्ट कमांड्सची अंमलबजावणी थेट वातावरणातून फक्त दोन क्लिक्सने करू देते."

"मग, मी कोणते शिकावे?"

"मी शिफारस करतो की तुम्ही त्या सर्वांना जाणून घ्या."

"तुम्ही तुमची मुलाखत पास कराल आणि कामावर पोहोचाल. तुम्हाला Git ची लिंक, एक लॉगिन आणि पासवर्ड मिळेल — आणि तेच. मग तुम्ही स्वतःच असाल."

"तुला काय म्हणायचे आहे, «स्वतः»?"

"म्हणजे तुम्ही स्वतः Git सेट कराल, रेपॉजिटरीची एक प्रत स्वतःहून खेचून घ्याल,..."

"आणि मग तुम्हाला प्रकल्प तयार करून चालवण्याचा प्रयत्न करावा लागेल."

"बिल्ड सूचना बहुधा प्रकल्प दस्तऐवजीकरणासह गिट रेपॉजिटरीमध्ये असतील."

"तुमची टीम लीड संध्याकाळी तुमच्याकडे येईल आणि म्हणेल,  "ठीक आहे, तुम्ही आतापर्यंत काय शोधले आहे?" "

"आणि तुम्ही म्हणाल, 'मी येथे Git सेट करण्याचा प्रयत्न करत आहे, परंतु अद्याप यश मिळाले नाही. «तुम्ही मला काढून टाकणार नाही, बरोबर?» "

"किंवा, दुपारची वेळ असताना, तुम्ही टीम लीडकडे जाऊन म्हणू शकता,  «मी Git इन्स्टॉल केले, प्रोजेक्ट खेचले आणि डॉक्युमेंटेशन ब्राउझ केले, पण शेकडो फाईल्स आहेत आणि मी अजून सर्व काही सोडवलेले नाही. सध्याच्या बिल्ड सूचना आहेत का?' »

"तुम्हाला फरक जाणवेल का?"

"हो. दुसऱ्या बाबतीत, मी एक सुपर रॉक-स्टार प्रोग्रामर आहे, पण पहिल्या बाबतीत, मी काही रोबो-डूफस आहे ज्यांना गिटमधून प्रोजेक्ट कसा काढायचा हे देखील माहित नाही. दुसऱ्या शब्दांत, मी स्क्रू केले मी प्रोग्रामिंग सुरू करण्याआधीच. मला असे वाटते की त्यानंतर ते मला कोड लिहू देणार नाहीत."

"हे बघ, तुम्ही तुमच्याच प्रश्नांची उत्तरे दिलीत. म्हणून अभ्यास करा आणि शोधून काढा. तुमच्यासाठी हे कोणीही करणार नाही."

"तू मला मदत करणार नाहीस?"

"मी आधीच मदत केली आहे. जर तुम्ही विसरला असाल तर आम्ही इथे जावा शिकवत आहोत. बाकी सर्व गोष्टींसाठी तुम्ही एकटे आहात. की तुमचे डोके फक्त पिण्यासाठी आहे?"

"ठीक आहे, मला समजले. धन्यवाद, बिलाबो!"