मैं उन डेवलपर्स के लिए क्या कर सकता हूं जो Git नहीं सीख सकते हैं? [बन्द है]


68

प्रसंग

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

सवाल

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

क्या मुझे Git सीखने के लिए इन कर्मचारियों की मदद करने के लिए कुछ भी करना चाहिए?

सॉर्सेट्री वह क्लाइंट है जो पूरी टीम द्वारा उपयोग किया जा रहा है।


1
टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
maple_shaft

3
आग बनाम साधारण बाइनरी लॉजिक कंप्यूटर के लिए काम कर सकता है, यह लोगों के लिए नहीं है। आप अपने प्रश्न के लिए वर्कप्लेस.स्टैकएक्सचेंज.कॉम की जांच कर सकते हैं, एक बार जीआईटी पहलू से परे इसे संबोधित करने के लिए तैयार महसूस करें।
फ्रैंक

का कहना है कि Git ;-) सीवी पर अच्छा लग रहा है
Mawg

1
यह वास्तव में लोगों / मनोविज्ञान की समस्या है, न कि सॉफ्टवेयर इंजीनियरिंग की समस्या।
जेसपर

@ जेस्पर हाँ और ना। मैं इसे कार्यस्थल पर रखने जा रहा था, लेकिन कुछ बहुत विशिष्ट सलाह के लिए क्षमता देखी गई (जो मुझे मिली!) जो तुरंत लागू हो सकती है।
गुस्सोर

जवाबों:


148

उन्हें एक खिलौना दें।

गित कठिन है। खासकर यदि आप एक अलग प्रतिमान में स्रोत नियंत्रण कर रहे हैं। मैंने पहली बार निर्माण को तोड़ दिया, जिसमें मैंने काम करने की कोशिश की। इसने मुझे इतना पागल बना दिया कि मैं तब तक जांच नहीं करना चाहता था जब तक कि सब कुछ नहीं हो जाता। मैं फ़ोल्डरों में संस्करण छिपा रहा था। तब मुझे अंत में समझ आया कि मुझे इसे पाने के लिए क्या चाहिए:

मुझे खेलने के लिए सुरक्षित जगह चाहिए थी।

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

यदि आप उन्हें गहरे अंत में टॉस करते हैं, तो आप भाग्यशाली होंगे यदि वे फ्लोट का प्रबंधन करते हैं।


36
मुझे यह उत्तर पसंद है, लेकिन मेरे दिमाग में यह एक और सवाल उठता है: आप उन्हें उस खिलौने के साथ खेलने के लिए कैसे प्रेरित करते हैं जब वे "वास्तविक काम करने में बहुत व्यस्त" होते हैं?
डेविड अर्नो

18
अगर आपको करना है तो उन्हें इसका श्रेय दें। यदि आपको लगता है कि आप इसे बेच सकते हैं, तो "योग्य योग्य" प्रमाणपत्रों को सौंप दें। लेकिन गंभीरता से, अगर यह स्वाभाविक रूप से उनके लिए कोई दिलचस्पी नहीं है, तो आपको बड़ी समस्याएं हैं। सभी डेवलपर्स डेवलपर टूल का उपयोग करने में सक्षम होना चाहिए।
कैंडिड_ऑरेंज

48
@DavidArno हर किसी को कहें कि वह प्रतिदिन एक घंटा बिताए, चाहे वह किसी अन्य काम का हो। या दो घंटे भी। स्रोत नियंत्रण का ठीक से उपयोग करने में सक्षम होना एक परियोजना के लिए महत्वपूर्ण है। उन उपकरणों को सीखना "वास्तविक काम" है।
संयोग

16
'आप उन्हें उस खिलौने के साथ खेलने के लिए कैसे प्रेरित करते हैं जब वे "वास्तविक काम करने में बहुत व्यस्त होते हैं? ’- यह वास्तविक कार्य है।
डेविड

18
मैं चकरा गया। किसी ने भी अनिवार्य xkcd का उल्लेख नहीं किया !
GnP

32

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

आपकी टीम को जिन कोर कमांड की आवश्यकता होगी वे हैं:

  • दूरस्थ से परिवर्तनों को खींचना और मर्ज करना और परिणामस्वरूप संघर्षों को संभालना (संभावित रीबासिंग)
  • प्रतिबद्ध और धक्का दूरस्थ की ओर जाता है (या समीक्षा के बाद मुख्य रूप से खींचे गए परिवर्तनों को प्राप्त करने के लिए रेपो / शाखा के मंचन को धक्का)
  • समर्थन के लिए: कुछ गलत करने के बाद गड़बड़ को ठीक करें।

अधिक उन्नत उपयोगकर्ताओं की आवश्यकता होगी जो हैं

  • स्थानीय आवागमन संभालें
  • शाखाओं का प्रबंधन

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

सुनिश्चित करें कि ये अच्छी तरह से प्रलेखित हैं और शालीनता से मूर्खतापूर्ण प्रमाण हैं।

यह xkcd कॉमिक की नस में है , बस आज्ञाओं को याद रखें और आशा करें कि चीजें बहुत ज्यादा गड़बड़ न हों, जब वे एक पेशेवर से पूछें।


8
वह gitflow वर्कफ़्लो का उपयोग कर रहा है इसलिए शाखाओं का प्रबंधन एक उन्नत विषय नहीं माना जाना चाहिए - यह कोर कमांड का हिस्सा है जिसे उसके डेवलपर्स को समझने की आवश्यकता है। एडवांस की बजाय कुछ बेसिक ट्रीटमेंट ब्रांच को सामान्य मानें।
स्लीबटमैन

5
@slebetman: इसे एक नाम देते हुए यह किसी भी कम जटिल या मुश्किल नहीं है।
रॉबर्ट हार्वे

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

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

@ रोबर्टहवे: ब्रांचिंग न तो जटिल है और न ही कठिन। यह बुनियादी है। बगफिक्स रिलीज जैसे कोने के मामलों में गिटफ्लो वर्कफ़्लो जटिल है लेकिन सामान्य उपयोग-मामला सरल है।
स्लीवेटमैन

28

क्या उन्होंने Git UI का उपयोग किया है।

यदि उनके पास TortoiseSVN के साथ अनुभव है, तो TortoiseGit (केवल Windows) लगभग समान कार्य करता है। अन्यथा, सोर्सट्री (विंडोज + मैक) अद्भुत है - हमारे पास कई गैर-डेवलपर क्यूए हैं जो आसानी से सोर्सट्री के लिए गिट धन्यवाद में जटिल कार्यों को करने में सक्षम हैं।


4
सोरेसट्री के लिए +1। ~ 30 छात्रों के एक कॉलेज प्रोजेक्ट के लिए, मैंने सोर्सट्री का उपयोग करके तोड़फोड़ से जीआईटी तक एक संक्रमण का नेतृत्व किया। एक बार मूल बातें सीख लेने के बाद लोग जल्दी से अनुकूलित हो गए, और हमारे पास प्रलेखन के लिए बहुत सारे लिंक थे। मैंने परीक्षण शाखाओं में प्रयोग करने के लिए भी प्रोत्साहित किया। मैं कहता हूं कि लगभग 75% लोग इसे सेमेस्टर के अंत तक उपयोग करने में सहज थे, और कुछ ने कमांड लाइन का उपयोग करना भी शुरू कर दिया था।
डेविक ४47

5
एक जीयूआई का उपयोग करने के लिए कहकर उसने पहले ही कहा कि वह इस सवाल का जवाब नहीं दे रहा है।
वगेरू

9
मूल पोस्ट को शामिल करने के लिए संपादित किया गया था कि इस उत्तर के पोस्ट होने के बाद SourceTree का उपयोग किया जा रहा था।
दीविका ४47

7
मैं GitKraken का भी सुझाव दूंगा। यह वही है जो मैंने अपने कुछ सीएस कैपस्टोन प्रोजेक्ट पार्टनर्स को Git से मिलवाने के लिए इस्तेमाल किया था। उन्होंने इसे 15 मिनट के भीतर उठाया - यह मृत सरल है, और एक सुंदर, सहज ज्ञान युक्त इंटरफ़ेस है। और नहीं, मैं GitKraken मार्केटिंग के साथ नहीं हूं।
क्रिस क्रेफ़िस

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

25

यह उत्तर यह बताने की कोशिश करता है कि वरिष्ठ प्रोग्रामरों को किस तरह से दिलचस्पी लेनी है git, न कि कैसे gitसबसे तेज़ तरीका सीखना है - इसके लिए, उत्कृष्ट गिट बुक बहुत बढ़िया है, या किसी भी राशि का ट्यूटोरियल (=> Google)। इस उत्तर के साथ जाने के लिए अच्छे लिंक हैं Git एक विशुद्ध रूप से कार्यात्मक डेटा संरचना है या विशेष रूप से लघु कैसे git आपके डेटा को संग्रहीत करता है

मुझे डर है कि मैं इस पर एक स्पष्ट दृष्टिकोण है। मैं वास्तव में आपके जूते में रहा हूं - मैं एक gitबेवकूफ हूं और एक टीम को इससे दूर करना चाहता हूं svn, आइए इसका सामना करें, शून्य से परिणाम। मेरे मामले में इसने मुझे अपनी धारणा को सक्रिय रूप से बदलने और लोगों को स्वीकार करने के लिए प्रेरित किया, बस "खुशी के लिए मजबूर" नहीं किया जा सकता है। लोग कंप्यूटर नहीं हैं, उन्हें प्रोग्राम करना अविश्वसनीय कठिन है। मैं अभी भी कोशिश करने के लिए खुश हूं, इसने मुझे बहुत नरम तरीके से दिखाया है कि मैं क्या करता हूं और मैं अपने पेशेवर जीवन में क्या नहीं करना चाहता हूं।

ऐसे लोग हैं जो नए सामान को शामिल करने के लिए प्रेरित होना शुरू करते हैं, और ऐसे लोग होते हैं जो डिमोनेटाइज्ड होते हैं। इसका कोई लेना-देना नहीं है git, लेकिन gitविशेष रूप से आपके लिए हमेशा यह प्रभाव होता है कि "हमें इसका उपयोग क्यों करना चाहिए अगर svnठीक है?", जो कि एक विशाल मनोवैज्ञानिक बाधा है।

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

अगर लोगों को इसमें कोई दिलचस्पी नहीं है, तो वे इसे नहीं समझेंगे। सादा और सरल। मैं चाहूंगा कि स्कूल में खराब ग्रेड का मुख्य कारण गायब बुद्धि न हो।

उन्होंने कहा, यहां एक पाठ्यक्रम होगा जैसा कि मैं इसे लागू करूंगा, यह ज्ञान के निचले-से-शीर्ष निर्माण पर आधारित है। यह मेरे लिए काम नहीं किया है, लेकिन आप इसे अपने स्वयं के रोल के लिए प्रेरणा के रूप में ले सकते हैं।

जीयूआई

हालांकि निम्नलिखित दृष्टिकोण को क्रियाओं के लिए GUI समर्थन की आवश्यकता नहीं है ( git addएक हैलो वर्ल्ड रिपॉजिटरी ...) में, यह शुरू से ही, रिपॉजिटरी को देखने के लिए GUI के लिए बहुत मदद करता है । यदि आप तय नहीं कर सकते हैं कि किसका उपयोग करना है, तो gitkअंतिम उपाय के रूप में लें । यदि आपके लोग किसी भी प्रकार के विज़ुअल एडिटर का उपयोग करते हैं, तो उनके gitGUI घटक को खोजें।

(स्टैटिक) डेटा संरचना प्रमुख है

आंतरिक डेटा प्रकारों की व्याख्या करके शुरू करें (उनमें से केवल तीन-प्लस-एक हैं: बूँद, पेड़, कमिट, एनोटेट टैग, जिनमें से अंतिम इस स्तर पर कोई चिंता नहीं है) और उनकी संरचना। आप आसानी से व्हाइटबोर्ड पर / एक पेंसिल के साथ कर सकते हैं; पेड़ को खींचना आसान है क्योंकि इसे कभी नहीं बदला जा सकता है, आप सचमुच हर समय सामान जोड़ सकते हैं। आप एक ताज़ा बनाए गए स्थानीय भंडार में एक नाटक सत्र कर सकते हैं और git cat-fileवास्तविक वस्तुओं को देखने के लिए उपयोग करके दिखा सकते हैं कि वे वास्तव में विज्ञापन के रूप में तुच्छ हैं।

अगर आप उन्हें यह समझने में मदद कर सकते हैं

  • ... इतिहास में केवल 3 प्रकार की वस्तुएं हैं, उनमें से सभी बहुत सरल, लगभग तुच्छ और
  • ... अधिकांश gitउप-क्षेत्र बस उन वस्तुओं को एक तरह से या किसी अन्य तरीके से "तुच्छ" करते हैं, पास के तुच्छ कार्यों के साथ (मूल रूप से, केवल एक है: कहीं एक नई प्रतिबद्धता जोड़ें), और ...
  • ... सब कुछ आसानी से आपके सामने ठीक से देखा जा सकता हैls और git cat-file...

तब उनका मानसिक अनुवाद होगा जो वास्तव में भंडार में है। इस बिंदु पर, seniours सकता है तो याद रखें कि के आंतरिक svnरहस्यमय जादू (कभी SVN भंडार के अंदर ताले के साथ समस्या नहीं थी, या "reintegrating" शाखाओं और इस तरह के?) के साथ कर रहे हैं, और यह कर सकते हैं बस उन्हें थोड़ा प्रेरित।

एक समस्या यह है, विशेष रूप से करने के लिए इस्तेमाल लोगों के साथ svn, विचार करने के लिए इस्तेमाल करने के लिए है कि एक प्रतिबद्ध (वस्तु, नहीं कार्रवाई) हमेशा होता है है पूरी निर्देशिका वृक्ष। में svn, लोगों को व्यक्तिगत फाइल करने के लिए उपयोग किया जाता है। यह मौलिक रूप से अलग दृष्टिकोण है। ओह, और तथ्य यह है कि एक ही शब्द "कमिट" का उपयोग स्थिर वस्तु के लिए किया जाता है और एक कार्रवाई भी मदद नहीं कर रही है।

svnलोगों के लिए दूसरी समस्या यह है कि svnवे वृक्ष नहीं, बल्कि एक रैखिक इतिहास का उपयोग करते हैं। यह, फिर से, बेतहाशा अलग है। तो यह इन मतभेदों की बात करने के लिए समय आ गया है एक बहुत

संरचना के संदर्भ में क्रियाओं को समझाया गया

जब वे समझ गए हैं कि एक gitरिपॉजिटरी को किन भागों से बनाया गया है, तो यह उन्हें दिखाने का समय है कि व्यक्तिगत gitउप-क्षेत्र उन के संदर्भ में क्या करते हैं।

मैं बात कर रहा हूँ add, commitस्थानीय कार्यशील निर्देशिका और मंच (सुनिश्चित करें कि वे समझते हैं कि कार्यशील निर्देशिका मचान क्षेत्र जो भंडार के समान नहीं है के रूप में ही नहीं है) के साथ संयोजन के रूप में।

जब वे समझ गए हैं कि ये आज्ञाएं केवल पेड़ उगाती हैं (जो, फिर से, इस स्तर पर, 3 प्रकार के होते हैं - बूँदें, पेड़, कमिट, न केवल कमिट होते हैं), आप पहले git pushऔर git pullतेजी से आगे मोड में कर सकते हैं ! ) उन्हें दिखाने के लिए कि gitवस्तुतः केवल अपनी वस्तुओं को चारों ओर धकेल रहे हैं, कि हैश वास्तव में केवल सामग्री हैश है, कि आप आसानी से इस सामग्री को एक फाइल सिस्टम कॉपी कमांड और इसी तरह से कॉपी कर सकते हैं।

जाहिर है, उन आदेशों के किसी भी गैर-विकल्प विकल्प से बहुत दूर रहें, हम यहां बात कर रहे git add hello.txtहैं।

शाखाओं

ध्यान दें कि ब्रांचिंग विशेष रूप से svnलोगों के लिए कठिन है , क्योंकि यह पूरी तरह से अलग है। svnमॉडल है ज्यादा , कल्पना करने के लिए आसान के रूप में वहाँ मूल रूप से कल्पना करने के लिए कुछ भी नहीं है - यह सादे ध्यान में रखते हुए है। gitमॉडल इतना नहीं। सुनिश्चित करें कि वे शुरू से ही इस बात से अवगत हैं कि शाखाएँ और टैग कहीं न कहीं इंगित करते हुए केवल "स्टिकी नोट्स" हैं, और स्थिर, अपरिवर्तनीय इतिहास के संदर्भ में वास्तव में "अस्तित्व में" नहीं हैं।

फिर आसान उदाहरण के बाद उदाहरण दें कि आप वास्तव में उनके साथ क्या कर सकते हैं। जैसा कि आप खुद को अभ्यस्त लगते हैं git, आपको वहां प्रेरणा पाने में कोई परेशानी नहीं होनी चाहिए। सुनिश्चित करें कि वे हमेशा यह देखते हैं कि पेड़ कैसे बढ़ता है।

यदि उनके पास वह नीचे है, तो आप बता सकते हैं कि git pullवास्तव में कैसा है git fetch && git merge; कैसे सभी रिपॉजिटरी में वास्तव में समान वस्तुएं होती हैं ( git fetchयह लगभग वस्तु के समान scpहै जो गिट ऑब्जेक्ट डायरेक्टरी के अंदर सामान है ) और इसी तरह।

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

आखरी श्ब्द

यह बहुत प्रयास की तरह लगता है, और यह वास्तव में है। इसे इस रूप में न बेचें "हमें इस परियोजना के लिए इसकी आवश्यकता है" लेकिन "यह आपको व्यक्तिगत रूप से विकसित करने में मदद करता है और आपके सभी आगे के इंटरैक्शन में आपकी मदद करेगा"। इसके लिए आपको बहुत समय चाहिए, और समय पैसा है। यदि आपके पास इस पर प्रबंधन स्वीकृति नहीं है, तो यह इसके लायक नहीं हो सकता है; शायद आपको अपने बॉस से बात करनी चाहिए।

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


11
संभवतः सच है, लेकिन इस दृष्टिकोण के साथ समस्या यह है कि अधिकांश प्रोग्रामर अपने स्रोत कोड नियंत्रण के विवरण को समझने में दिन बिताना नहीं चाहते हैं। वे बस इसे काम करना चाहते हैं, बस। । IMO, git इस पर विफल है। यह समझना काफी कठिन है कि आपका वास्तविक कोड ब्लब्स के बारे में चिंता करने के लिए कैसे काम करता है।
user949300

1
आपकी टिप्पणी 100% सत्य है, @ user949300, इसलिए प्रभावी ढंग से उपयोग करने के gitलिए कुछ सुपर-पोर्सिलेन के साथ बदलने के बारे में अंत में मेरी चुटकी । ओपी को अपने व्यवसाय के लिए इसे (उपयुक्त समय सहित) अपनाने की आवश्यकता होगी। जैसा कि मैंने लिखा है, मैं इस (या किसी अन्य) दृष्टिकोण के साथ हर किसी को "गुना में" प्राप्त करने में सफल नहीं था, लेकिन फिर भी, अगर मुझे फिर से प्रयास करने के लिए मजबूर किया गया, तो यह फिर से मेरा दृष्टिकोण होगा। git
AnoE

1
सच कहूँ तो मुझे लगता है कि वास्तव में यह कैसे काम करता है बिना समझ के उपयोग करने में आप बहुत दूर निकल सकते हैं। यदि आप जानते हैं कि शाखा, ऐड, पुश, और पुल वहाँ की तरह 95% है जो विशिष्ट व्यक्ति कभी भी उपयोग करेगा।
केसी

6
@ user949300 "दिन" Git सीखने के साथ मेरे अनुभव को बिल्कुल भी फिट नहीं करता है। Git के पास कुछ बेहतरीन डॉक्यूमेंट हैं जो मैंने किसी प्रोजेक्ट पर देखे हैं। आप प्रो Git के पहले 3 अध्यायों को पढ़ने में एक घंटा खर्च करने से सभी मूल बातें उठा सकते हैं , जो कि बहुत सारे आरेखों के साथ एक बहुत ही सुलभ प्रारूप में लिखा गया है। Google पर एक त्वरित "मैं ___ Git में कैसे करता हूं" लगभग अपरिवर्तनीय रूप से बाकी प्रदान करता है - आमतौर पर एक स्टैकएक्सचेंज उत्तर से।
जॉन बेंटले

1
@Gusdor एट अल, ध्यान रखें कि यह उत्तर इस बहुत ही प्रश्न के लिए विशिष्ट है - कैसे वरिष्ठ प्रोग्रामर सीखने के बारे में दिलचस्पी लेने के लिए git। जाहिर है, अन्य सभी संसाधन (उत्कृष्ट गिट प्रलेखन, ट्यूटोरियल आदि) भी मान्य हैं। Gusdor, यदि आप अधिक जानना चाहते हैं, तो Google "गिट ऑब्जेक्ट" या "गिट डेटा संरचनाएं" और आप जल्दी से जानकारी का खजाना पाएंगे। मैंने उत्तर में कुछ लिंक जोड़े हैं। तुम भी एक वरिष्ठ के बारे में एक भूरे रंग के सत्र बनाने के लिए कह सकते हैं। ;)
एनओई

14

मैं आपको जोएल स्पोल्स्की द्वारा इस ब्लॉग प्रविष्टि का उल्लेख करना चाहूंगा ।

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

इसके अतिरिक्त, जितना मुझे यह कहना पसंद नहीं है; वास्तव में उपयोगकर्ता मैनुअल कौन पढ़ता है? आमतौर पर वे बुनियादी उपयोग की व्याख्या करने में बहुत खराब हैं। बस मैनुअल से git कमिट पृष्ठ देखें और विचार करें कि अवधारणा के साथ गति करने के लिए किसी व्यक्ति के लिए कितने नए शब्द और वाक्यांश पेश किए जा रहे हैं। एक अच्छे परिचय के बिना मैंने संभवतः Git का उपयोग करने का अधिकार छोड़ दिया था।

मेरी व्यक्तिगत सलाह यह होगी कि आप आज्ञाओं को समझाना शुरू करें:

  • git add <files>
  • कमिट
  • पकड़ खींचो
  • जोर का धक्का
  • गिट की स्थिति

तार्किक रूप से मर्ज संघर्षों को आगे समझाया जाना चाहिए, क्योंकि यह निश्चित रूप से आपका पहला मुद्दा बनने जा रहा है जब लोग कोड को कैसे सीखते हैं।

आमतौर पर ऐसी स्थितियाँ पैदा होंगी जहाँ लोगों को सीखने के सामान में अधिक समय लगाने की आवश्यकता होगी (श्रद्धेय, टैग, मर्ज संघर्ष, शाखाएँ, रिबासिंग, हुक) लेकिन जरूरत पड़ने से पहले उन सभी को समझाने की कोशिश करने से उन लोगों को मदद नहीं मिलेगी, जिन्हें परेशानी हो रही है। बहाव।

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


1
"कौन वास्तव में उपयोगकर्ता मैनुअल पढ़ता है?" मुझे ऐसा लगता है कि यह नए जूनियर डेवलपर्स की एक उचित उम्मीद हो सकती है, लेकिन मुझे लगता है कि एक कौशल जो डेवलपर्स को समय के साथ सीखना चाहिए, वह है प्रलेखन पढ़ना। इसे विकसित किया जाना एक कौशल है, क्योंकि प्रलेखन की भाषा ट्यूटोरियल या अधिक आकस्मिक तकनीकी सामग्री की भाषा के समान नहीं है, और क्योंकि यह हमेशा स्पष्ट नहीं होता है कि प्रलेखन के विभिन्न भाग एक दूसरे के साथ कैसे बातचीत करते हैं। यह "अधिक अनुभवी इंजीनियरों की मुट्ठी भर" के साथ एक मुद्दे के रूप में नहीं होना चाहिए।
जोशुआ टेलर

2
आपके ब्लॉग प्रविष्टि लिंक ने मुझे एक असंबंधित YouTube वीडियो दिया।
WGroleau

2
मुझे लगता git statusहै कि आपके द्वारा बताए गए चार आदेशों के अलावा, यह महत्वपूर्ण है।
user949300

1
@JoshuaTaylor मैंने यह कहने का इरादा नहीं किया कि मैनुअल खराब हैं, वे वास्तव में महान हैं। हालाँकि, किसी को आदमी को संदर्भित करने की कल्पना करो और बस कहो; चलो, यह सीखना आसान है, बस मैन पेज पढ़ें। मेरी बात यह नहीं है कि प्रलेखन महान नहीं है, इसका बहुत कुछ त्रुटिहीन रूप से लिखा गया है और उन लोगों के लिए उपयोगी है जो इसके लिए लिखे गए डोमेन को जानते हैं, लेकिन यह आमतौर पर किसी ऐसे व्यक्ति के लिए बेकार है जो मूल उपयोग की तलाश में है। संपादित करें : और वह अंतिम बिंदु ओपी के पास होने वाली समस्या है।
रोबजोर

@ user949300 अच्छा पकड़, मैं बिल्कुल सहमत हूँ।
रोबजोर

11

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

सरल शुरू करो

आप कहते हैं कि आपने शाखा प्रबंधन के लिए Gitflow को अपना मानक चुना है। यह मुझे आपकी सबसे बड़ी गलती मानता है।

के शब्दों में Gitflow हानिकारक माना :

इन सभी शाखाओं का उपयोग किया जाता है जो कि GitFlow के लिए जटिल नियमों का एक विस्तृत सेट है जो यह वर्णन करते हैं कि वे कैसे बातचीत करते हैं। अमूर्त इतिहास के साथ मिलकर ये नियम, डेवलपर्स के लिए GitFlow के रोजमर्रा के उपयोग को बहुत कठिन बनाते हैं।

क्या आप अनुमान लगा सकते हैं कि जब भी आप इस तरह के नियमों का एक जटिल वेब सेट करते हैं तो क्या होता है? यह सही है - लोग गलती करते हैं और दुर्घटना से टूट जाते हैं। GitFlow के मामले में, यह हर समय होता है। यहाँ एक छोटा है, मेरे द्वारा देखे गए सबसे सामान्य ब्लंडर की विस्तृत सूची से कोई मतलब नहीं है। ये लगातार, कभी-कभी हर दिन, अक्सर और फिर से एक ही डेवलपर्स द्वारा दोहराए जाते हैं - जो ज्यादातर मामलों में, अन्य सॉफ़्टवेयर क्षेत्रों में बहुत सक्षम हैं।

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

आपको सरल शुरुआत करने की आवश्यकता है। अभी एक ब्रांचिंग मानक के बारे में चिंता न करें। पहले उन्हें गिट का उपयोग करने के लिए उपयोग करने पर ध्यान दें । आरंभ करने के लिए आपको केवल कुछ कार्यों की आवश्यकता होगी:

  • क्लोन
  • खींचें
  • डाली
  • विलय
  • प्रतिबद्ध
  • धक्का दें
  • कैसे .gitignoreकाम करता है के बारे में ज्ञान
  • शायद टैग

हां, आपका इतिहास पहले थोड़ा गड़बड़ दिख सकता है। यह ठीक हैं। इसके बारे में अभी चिंता मत करो। बस उन्हें गिट का उपयोग करके प्राप्त करें ।

धीरे-धीरे ज्ञान बढ़ाएं

यहां से, आप धीरे-धीरे उन्हें थोड़े अधिक उन्नत उपयोग पर शिक्षित कर सकते हैं।

  • उन्हें महाकाव्य स्लैश कमांड सिखाएं
  • उन्हें सिखाएं कि जब वे अपने द्वारा बनाई गई स्थानीय प्रतिबद्ध को फेंकना चाहते हैं तो रीसेट का उपयोग कैसे करें
  • उन्हें संशोधन करना सिखाएं
  • उन्हें सिखाएं कि अनावश्यक विलय से बचने के लिए रिबेट कैसे करें
  • उन्हें पुश करने से पहले अपने कमिट्स को व्यवस्थित करने के लिए इंटरसेक्टली रीबेस करने के तरीके सिखाएं
  • उन्हें सिखाएं कि वे किसी भी हैश, टैग या शाखा से कैसे चेकआउट कर सकते हैं

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

फिर एक ब्रांचिंग मानक चुनें

एक बार जब आपके पास कंपनी का सबसे अधिक उपयोग करने में सक्षम होता है, तो आप शाखाओं के मानकों को देख सकते हैं। एक को चुनना सामने कई कारणों से बहुत बुरा विचार है:

  • उन्हें आपको यह बताने के लिए उपकरण का पर्याप्त ज्ञान नहीं है कि कंपनी के उपयोग के मामलों के लिए मानक अच्छी तरह से काम करता है या नहीं
  • वे वैकल्पिक मानकों की पेशकश करने में सक्षम नहीं होंगे
  • उन्हें एक ही समय में उपकरण और मानक दोनों सीखना होगा
  • कुछ मान लेंगे कि आपके द्वारा चुना गया मानक एकमात्र तरीका है जो वे गिट का उपयोग कर सकते हैं
  • वे दुर्लभ किनारे के मामलों की पहचान करने में सक्षम नहीं होंगे, जहां मानक अच्छे से अधिक नुकसान पहुंचा रहे हैं

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

अपनी टीम पर विचार करने के लिए Gitflow के कुछ विकल्प दिए जा सकते हैं:

उन्हें देखें और Gitflow, उन्हें अपने उपयोग के मामलों के खिलाफ तौलना, और एक है कि फिट बैठता है उठाओ।


2
Gitflow के विकल्प का उल्लेख करने के लिए +1। मेरे अनुभव में, बहुत से कष्ट देव दुकानों से आते हैं जो इसे अपनाने की कोशिश करते हैं जब यह उनकी आवश्यकताओं के लिए ओवरकिल होता है और / या इसका सही उपयोग नहीं करता है। एक सरल मॉडल उन मामलों में लगभग हमेशा बेहतर होता है और इसमें Git को सीखने में आसान बनाने का अतिरिक्त लाभ होता है।
थंडरफोर्ज

5
@ थंडरफोरगे I इसे "ओवरकिल" कहकर असहमत हैं, क्योंकि यह बताता है कि यह किसी भी तरह से अधिक शक्तिशाली या लचीला है या किसी तरह से लाभप्रद है। मैं वास्तव में विश्वास नहीं करता कि Gitflow का कोई लाभ है। यह एक कदम पीछे की ओर प्रतीत होता है: जटिल वर्कफ़्लोज़ लेने की कोशिश करना जो एसवीएन जैसे अन्य संस्करण नियंत्रण उपकरण में आवश्यक हैं और बस उसी तरह से गिट का उपयोग करें। हालांकि पहली जगह में सरल वर्कफ़्लोज़ को सक्षम करने के लिए Git में लचीलापन है। मुझे लगता है कि अपील यह है कि यह बिना वितरण के कम (नियम और निर्देश) सोचने का भ्रम देता है। लेकिन आपकी बात मान ली गई। धन्यवाद।
jpmc26

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

1
@Gusdor आपका प्रश्न कहता है "वर्तमान में संक्रमण हो रहा है।" इसका क्या मतलब है? इसके अलावा, अगर आप खरीदारी नहीं कर रहे हैं, तो Gitflow के सफल होने की संभावना नहीं है क्योंकि यह इतना भारी वजन है, चाहे आपको लगता है कि इसके फायदे हैं या नहीं।
jpmc26

2
@Gusdor आपको मेरी सलाह है कि आपको अपने शिक्षण कौशल को विकसित करने की आवश्यकता हो सकती है। गलतफहमी या लापता जानकारी के मूल कारण की पहचान करने के लिए आपको बेहतर होना चाहिए। आपको यह पता लगाने की ज़रूरत है कि किसी के तर्क गलत हो रहे हैं या नहीं। दस्तावेज़ीकरण लिखने के लिए , आपको न केवल किसी व्यक्ति से इसे छेड़ने में सक्षम होने की आवश्यकता है, आपको यह अनुमान लगाने में भी सक्षम होना चाहिए कि लोग भ्रमित हो जाएंगे या इसका उपयोग करने की कोशिश करने पर उन्हें क्या देना होगा।
jpmc26

11

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

"गिट कमिट" और "गिट पुश" के बीच अंतर क्या हैं?

Pull गिट पुल ’और 'गिट लाने’ में क्या अंतर है?

मुझे आश्चर्यजनक रूप से उपयोगी होने के लिए ट्रंक का एक दृश्य प्रतिनिधित्व भी मिला, लेकिन आप पहले से ही उस सोर्सट्री के साथ कवर कर रहे हैं।

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


महान लिंक। मैं उस डेटा प्रवाह छवि को चोरी करने जा रहा हूँ!
गुसाडोर

9

उन्हें एक पुस्तक खरीदें

ईमानदारी से, मैं आपके द्वारा बताए गए शिविर में चौकोर रूप से गिर गया। मैं SourceSafe और ClearCase की पृष्ठभूमि से आया था। पहले तो, मेरे मालिक पूरी तरह से अपमानित थे, बावजूद इसके कि बॉस ने कई बार यह किया।

मेरी मदद करने वाली एक पुस्तक थी जिसमें स्पष्ट रूप से वर्णन किया गया था कि क्या चल रहा है, लेकिन इससे भी महत्वपूर्ण बात यह है कि, Git किसी भी स्रोत नियंत्रण प्रणाली की तुलना में मौलिक रूप से अलग था जो मैंने पहले इस्तेमाल किया था। अब, मैं Git को किसी अन्य पसंद से अधिक पसंद करता हूं।

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

पुस्तक सिफारिश के लिए सबसे अच्छा अनुमान है:

स्कॉट चैक द्वारा प्रो गिट (आसानी के लिए अमेज़ॅन लिंक ... जो आप चाहते हैं, उससे खरीदें: https://www.amazon.com/dp/1484200772/ref=cm_sw_r_cp_dp_T1_BNruzbBQ3G9A6 )

नोट : Git के लिए संदर्भ पुस्तक खरीदें। वह बिल्कुल मदद नहीं करेगा।


6
प्रो Git निश्चित रूप से IMO के लिए जाने वाला है। आप इसे Git की वेबसाइट से निःशुल्क प्राप्त कर सकते हैं । जब तक आप वास्तव में हार्ड कॉपी नहीं चाहते तब तक इसके लिए भुगतान करने की आवश्यकता नहीं है।
जॉन बेंटले

4

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

अन्य लोग, ऐसा नहीं कर सकते, उन्हें यह समझने की आवश्यकता है कि गिट क्या कर रहा है, और इसमें अधिक समय लगता है। मैं उस श्रेणी में था; मुझे .gitनिर्देशिका की सामग्री के साथ खेलना वास्तव में मददगार लगा , जब चीजें मेरे लिए क्लिक करने लगीं। इसके अलावा हमारे तकनीकी नेतृत्व के साथ एक सत्र में एक ने मदद की।

आप एक ट्यूटोरियल पर एक कर सकते हैं क्योंकि लोग अलग-अलग सीखते हैं और वास्तव में अलग-अलग हिस्सों के बारे में भ्रमित हो सकते हैं, एक सत्र में एक पर यह देखना और हल करना आसान है। यदि वे वास्तव में इस तथ्य से परेशान हैं कि उन्हें समझ में नहीं आता है कि गिट कैसे शाखाओं का ट्रैक रखता है, तो उन्हें .gitनिर्देशिका की सामग्री दिखाएं , और इसी तरह ...


4

मैं परिचय के साथ कर रहा हूं gitजहां मैं (टीएफएस से) हूं, इसलिए आपका प्रश्न मेरे लिए समय पर है, खासकर जब मैंने विषय को दलाली करते समय कुछ पीछे धकेल दिया है।

में Peopleware , पूरी किताब की अंतर्निहित शोध करे है:

हमारे काम की प्रमुख समस्याएं इतनी तकनीकी नहीं हैं जितनी प्रकृति में समाजशास्त्रीय हैं

मैं इसे ऊपर लाता हूं क्योंकि हमारी कोई तकनीकी समस्या नहीं है। git, जब तक कि एक छोटा सा निरोध, शायद आपकी या मेरे वरिष्ठ देवों की क्षमता से परे नहीं है, जब तक कि वे अत्यंत बेवकूफ न हों *।

आइए इसे अपने देव दृष्टिकोण से देखें, लोगों के रूप में, तकनीकी मशीनों से नहीं:

आप उन्हें एक स्रोत नियंत्रण प्रणाली का उपयोग करने से रोकने के लिए कह रहे हैं जो उनके पास होने की संभावना (संभावना) है, जो वे नहीं करते हैं। यह एक पूछ की तरह एक सा है gitविशेषज्ञ का उपयोग बंद करने gitऔर को स्थानांतरित svnहै ना? मुझे लगता है कि गिट विशेषज्ञ नाराज होगा, और शायद इसमें ज्यादा प्रयास नहीं करना चाहिए svnक्योंकि gitठीक काम करता है और इसके कुछ हिस्से हैं जो वह वास्तव में पसंद करते हैं जो वास्तव में करना मुश्किल है svn

शायद इसीलिए जूनियरों ने इसे बेहतर तरीके से लिया है - शायद उन्हें फांसी नहीं मिली है svnऔर gitउनके लिए यह मौका है कि वे इसे खोद सकें।

अवसर की लागत से सावधान रहने वाले वरिष्ठ - यदि वे सीखते हैं git, तो वे नहीं हैं:

  • लर्निंग रिएक्ट / एंगुलर / स्विफ्ट / ब्लॉकचेन / कोटलिन (कुछ अन्य चीज़ जो उन्हें लगता है कि उन्हें सीखना चाहिए )।
  • Doing DIY / whittling / sailing / कविता / glockenspiel / जो कुछ भी वे वास्तव में करना चाहते हैं।
  • अपने बच्चों / रिश्तेदारों / दोस्तों / महत्वपूर्ण दूसरों के साथ समय बिताना।
  • इस "बड़ी नई चीज़" को वितरित करना - एक समय सीमा, बजट आदि है। वे शायद इसके बारे में चिंतित हैं।

    "मुझे उपरोक्त सभी करने की आवश्यकता है, git जब हमारे पास पहले से ही स्रोत नियंत्रण है तो मुझे इसका उपयोग क्यों करना है ?"

आपने उन्हें एक चीज़ से स्विच करने के लिए क्या कारण दिए हैं जो कि वे एक और चीज़ के लिए अच्छे हैं, जो स्पष्ट रूप से अजीब है जब आप इसके लिए नए हैं, और आपको कैसे देवता हैं, इस पर पूर्ण पुनर्विचार की आवश्यकता है? क्या आपने gitसुविधाओं के लाभ के बारे में बताया है?

पुल अनुरोध? ठीक दानेदार चेकिन? वितरित स्रोत? फोर्क्स?

क्या वे इन कारणों से सामने आए हैं? ये बड़े पैमाने पर संरचनात्मक परिवर्तन हैं यदि आप एक केंद्रीकृत स्रोत नियंत्रण दिमाग सेट में हैं - न केवल तकनीकी परिवर्तन बल्कि सांस्कृतिक भी, और हम जानते हैं कि संस्कृति को बदलना कितना मुश्किल है।

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

सौभाग्य।


* मैं अत्यधिक लोगों को यह याद रखने की सलाह देता हूं कि जब तकनीकी सामान की बात आती है, तो अधिकांश डेवलपर्स बेवकूफ नहीं होते हैं। बस इसे छोड़ दें क्योंकि एक कारण के रूप में जब तक कि कोई अन्य स्पष्टीकरण न हो।

^ और अधिक रोजगार योग्य हो सकता है, जो कि ऐसा कुछ है जो वरिष्ठों के बारे में नहीं सोच सकते हैं, विशेष रूप से हमारे उद्योग में प्रचलित युगवाद को देखते हुए।


3

मुझे लगता है कि यह एक सॉफ्टवेयर इंजीनियरिंग प्रश्न से कम और मनोविज्ञान का अधिक प्रश्न है। मैं संदर्भित करना चाहूंगा Algorithms to Live By: The Computer Science of Humand Decisions। इसमें लेखक अन्वेषण / शोषण व्यापार के विषय में जाता है। मनुष्य आमतौर पर अन्वेषण के एक चरण से गुजरता है और फिर शोषण के एक चरण के माध्यम से (उपयोग करके) जो उन्होंने खोजा है। इसके पीछे कुछ ठोस गणितीय सिद्धांत है कि एक निश्चित अंतराल में किसी चीज से इष्टतम उपयोग करने के लिए यह मामला क्यों है।

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

आपके वरिष्ठ इंजीनियर शायद पुराने हैं, वे शायद कुछ संस्करण नियंत्रण प्रणालियों से गुजरे हैं। SVNसंभवत: अब तक उन्होंने जो सबसे अच्छा इस्तेमाल किया है, (कम से कम पुराने वर्ज़निंग सिस्टम जिन्हें मैंने इस्तेमाल किया था, एसवीएन ने उन सभी को हराया)।

उनकी इष्टतम रणनीति एसवीएन का शोषण करना है, क्योंकि उन्होंने अपनी खोज की है और पाया है कि यह सबसे अच्छा है, जिसका वे अब शोषण करते हैं।

यह बुनियादी मानव मनोविज्ञान है, और विकासवादी अनुकूलन के सैकड़ों हजारों साल आप के खिलाफ लड़ रहे हैं।

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


2

Git का उपयोग करने के लिए उन्हें कोई टूल या GUI न दें। यह केवल चीजों को भ्रमित करेगा। Git को एक कमांड लाइन पर चलाने के लिए कल्पना की गई थी, ताकि संभवतः वह स्थान हो जहां इसे सीखा जाता है। कोई भी GUI अपनी शर्तों और विशिष्टताओं के साथ आ सकता है, जो सरल है, उसी के साथ रहें।

इसके बाद कुछ समस्याओं पर गौर किया जाएगा जो Git SVN से बेहतर है। अपनी टीम को यह जानने के लिए कि आपको यह देखने के लिए प्रेरित करने की आवश्यकता है कि गिट बेहतर क्यों है।

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

मुझे यकीन है कि एसवीएन पिछले कुछ वर्षों में आगे बढ़ गया है, लेकिन वे ऐसी चीजें हैं जो दर्द की दुनिया का कारण बनती हैं। यदि देवता देखते हैं कि यह नया उपकरण केवल कुछ फैंसी चीज नहीं है, लेकिन उनके काम के ठोस फायदे हैं, तो वे इसके पीछे होने की अधिक संभावना हो सकती है।

यह सीखने के लिए एक नई बात है और इसमें काफी समानताएं हैं कि यह भ्रामक हो सकता है, लेकिन वास्तव में 2017 में डीसीवीएस हर देव के लिए बहुत आवश्यक कौशल है।


1
+1 अन्य कि बहुत उन्नत विषय जैसे चेरी पिकिंग और रीबासिंग (मेरे लिए रॉकेट साइंस), कमांड लाइन के साथ सीखना एक सलाह है जो वास्तव में बहुत मायने रखती है। यह वास्तव में Git सीखने का एकमात्र तरीका है। आप पहले Dreamweaver, सही का उपयोग करने से पहले HTML सीखते हैं? मैं सबसे सामान्य आदेशों को प्राप्त करने के लिए कुछ उपनाम बनाऊंगा। उदाहरण के लिए लॉग कमांड बाइजेंटाइन और आर्कैन है, बस उनके लिए एक उपनाम बनाएं जो एक अच्छा इतिहास प्रिंट करता है।
ट्यूलेंस कोर्डोवा

7
मैं पूरी तरह से असहमत हूँ। डीएजी का एक दृष्टिकोण अब तक समझने के लिए सबसे महत्वपूर्ण उपकरण है कि क्या हो रहा है। एक दृश्य जो केवल GUI से आएगा।
एबेन स्कोव पेडर्सन

1
git log --graph --abbrev-commit --decorate --date=relative --all
जेरेमी फ्रेंच

1
git guiऔर gitkमुख्य git पैकेज के साथ आते हैं, और git को किसी अन्य चीज़ की तरह बनाने की कोशिश नहीं करते हैं। वे उत्कृष्ट हैं, विशेष रूप gitk --allसे सभी शाखाओं को देखने के लिए, और वर्तमान शाखा को रीसेट करने के लिए अन्य कमिट्स या इस तरह से सामान करने के लिए। Gitk में, "cherry-pick" उन विकल्पों में से एक है जो आपको कमिट पर राइट-क्लिक करने पर मिलते हैं। यह कमांड-लाइन टूल के समान शब्दावली का उपयोग करता है।
पीटर कॉर्डेस

3
@ जेरेमीफ़ेंच ASCII कला एक ग्राफ को गिट रेपो के रूप में जटिल रूप में देखने का एक बहुत उपयोगी तरीका नहीं है।
jpmc26

2

उन्हें चिंता न करने के लिए कहें

Git में, एक बार काम करने के बाद, यह खोना लगभग असंभव है। एकमात्र कार्य जिसे आप आसानी से खो सकते हैं वह काम है जो अभी तक प्रतिबद्ध नहीं हुआ है।

उन्हें दिखाओ कि कैसे git reflogकाम करता है। उन्हें यह जानने की जरूरत नहीं है कि इसका उपयोग कैसे किया जाए; उन्हें बस यह जानने की जरूरत है कि कुछ गलत होने पर उन्हें अपना काम वापस लेने में मदद मिल सकती है।

फिर उन पर इस एक साधारण नियम को प्रभावित करें: जब संदेह हो, तो प्रतिबद्ध करें। वे हमेशा बाद में भी कमिट कर सकते हैं (रिमोट से भी!)।

GUI का उपयोग न करें

एक GUI उन्हें एक तेज शुरुआत देगा, लेकिन वे वास्तव में कभी समझ नहीं पाएंगे। इसके अलावा, मैंने पाया है कि जीआईटी जीयूआई का उपयोग करते समय प्रतिबद्ध काम को "खोना लगभग असंभव" नहीं है । मैंने देखा है कि GUIs भयानक चीज़ों को मर्ज की तरह पेश करते हैं और फिर, यदि उपयोगकर्ता किसी आइटम को अनचेक करता है, तो इतिहास से उस फ़ाइल को बिना किसी चेतावनी के मिटा दें और उसका कोई रिकॉर्ड न रखें। एक GUI केवल कमांड-लाइन Git सीखने से कहीं ज्यादा खराब है।

जोड़ी कार्यक्रम कोड करता है

git add -Aइसके बाद सीखना git commitबहुत कठिन नहीं होना चाहिए, लेकिन विशेष रूप से जब रिमोट के खिलाफ विलय (या रिबासिंग) होता है, तो उन्हें कुछ सहायता की आवश्यकता होगी। यह स्पष्ट करें कि किसी का भी किसी भी समय सहायता माँगने का स्वागत है। जब वे कमांड टाइप करें और नोट्स लें तब तक खड़े रहें। समय के साथ वे धीरे-धीरे उन स्थितियों की संख्या में वृद्धि करेंगे जिन्हें वे मदद के बिना संभाल सकते हैं।

गिट पहले से ही सुरक्षित है

ऊपर किसी ने "खेलने के लिए एक सुरक्षित स्थान" होने की बात की। लेकिन Git है कि सुरक्षित जगह। केवल दो सामान्य, रोज़मर्रा के मामले हैं जहाँ काम खोना आसान है:

  • निष्कलंक कोड
  • एक जीयूआई का उपयोग करना

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


1

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


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

ठीक है, यह उतना ही सरल है जितना कि आप एक गीट-संगत पोर्सिलेन के दायरे में आने वाले हैं। सभी सामान्य आदेश अलग-अलग नामों के साथ एक-ऑप्स हैं और किसी भी तर्क की आवश्यकता नहीं है।
डेविड हेमैन

0

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

इसके बजाय, मैं दो प्रकार के अप्रत्यक्ष उपयोग करता हूं।

  • मैं अपनी शाखाओं का दृश्य इतिहास प्रदान करने के लिए GitKraken का उपयोग करता हूं, और एक GUI जो कमांड लाइन स्टेटमेंट को छुपाता है। GitKraken "मूल" दूरस्थ रिपॉजिटरी के बीच परस्पर क्रियाओं को संभालता है और git को लगता है कि यह मेरी स्थानीय कार्यशील निर्देशिका है।

  • मैं एक "वास्तविक" स्थानीय वर्किंग डायरेक्टरी भी रखता हूं, जो इस बात से अलग है कि मेरे स्थानीय वर्किंग डायरेक्टरी क्या हैं। मैं इन दो वर्किंग डाइरेक्टरीज़ को मैन्युअल रूप से सिंक करता हूँ, जो मुझे और अधिक आरामदायक बनाती है कि मेरी वर्किंग डाइरेक्टरी में कोई भी बदलाव जो मेरा इरादा है।


0

क्या मुझे Git सीखने के लिए इन कर्मचारियों की मदद करने के लिए कुछ भी करना चाहिए?

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

इसलिए ध्यान न दें कि उन्हें कैसे पढ़ाया जाए, जब तक वे स्विच के लिए एक फायदा नहीं देखते हैं, वे अपने पैरों को खींच लेंगे। उन्हें दिखाएं कि वे उन मुद्दों का समाधान कैसे करते हैं जो अब उनके पास हैं। यह नहीं कि Git उन्हें उन चीजों को कैसे प्रदान कर सकता है जिन्हें वे अभी तक महसूस नहीं करते हैं, न कि कैसे Git अन्य लोगों के मुद्दों का समाधान प्रदान करता है, Git उन मुद्दों को कैसे हल करता है जो वे अब लड़ रहे हैं। फिर उन्हें पढ़ाना गैर मुद्दा होगा।


0

अक्सर Git को शाखाओं के साथ समस्याओं को हल करने के लिए एक कंपनी में उपयोग में लाया जाता है। हां यह शाखाओं में बेहतर है फिर तोड़फोड़, लेकिन यह कोई जादू नहीं करता है।

यह बहुत संभावना है कि अनुभवी डेवलपर्स के पास कई कंपनियों में काम है।

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

इसलिए जैसे ही कुछ मुझसे कहता है कि एक उपकरण अच्छा है, जो मेरे मन की शाखा है।

प्रबंधन यह तय नहीं करना चाहता है कि कंपनी किस रास्ते पर जा रही है, और इसके बजाय मैं जीवन को बर्बाद कर रहा हूं ताकि 101 अलग-अलग शाखाओं में अपने काम का विलय हो जाए, साथ ही सॉफ्टवेयर के 101 विभिन्न रिलीज का परीक्षण करने के लिए।

साथ ही यह अवधारणा कि दो लोग एक ही फाइल पर एक ही समय में काम कर रहे हैं, "अच्छा" है, यह किसी के लिए स्वीकार्य नहीं है जिसने अच्छी तरह से रन प्रोजेक्ट का अनुभव किया है, इसलिए ऐसा करने के लिए एक टूल के रूप में Git को बढ़ावा देना, अनुभवी होने की संभावना नहीं है। डेवलपर्स आपको पसंद कर रहे हैं।

हर बार जब मैं इतिहास को Git में देखता हूं, तो यह देखना बहुत कठिन है कि कोड क्यों बदला गया, क्योंकि 50% या अधिक इतिहास विलीन हो जाता है कि तार्किक रूप से कभी भी सार्वजनिक नहीं होना चाहिए और जैसे ही कोड डेवलपर्स को छोड़ देता है वे अर्थहीन हो जाते हैं मशीन।

लेकिन मुझे कहीं और काम करना पसंद होगा जहाँ:

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

इसलिए वास्तविक समस्याओं को हल करें और अगर Git उन समाधानों का हिस्सा है जिन्हें आपके अनुभवी डेवलपर्स खरीदेंगे, लेकिन उनसे यह उम्मीद न करें कि उन्हें Git पसंद है क्योंकि यह एक अच्छा खिलौना है जो "मैजिक मर्ज" कर सकता है।

इसलिए कहीं भी जो एक डेवलपर को अपने स्थानीय Git से केंद्रीय Git में धकेलने देता है वह गलत कर रहा है, एक नियंत्रित स्वचालित प्रक्रिया को डेवलपर्स से परिवर्तन लेने और उन्हें आदि का परीक्षण करने के बाद होना चाहिए, और विलय की जाँच करना केंद्रीय git को अपडेट करना है। शाखाएँ आदि जो दीर्घकालिक हित के नहीं हैं।

मुझे उम्मीद है कि भट्ठा ( http://www.fogcreek.com/fogbugz/devhub ) या यहां तक ​​कि GitHub एक "पुल अनुरोध" वर्कफ़्लो का उपयोग करके अनुभवी डेवलपर्स को खुश रखेगा, जैसे कि निम्न स्तर के साथ शुरू न करें, सुधार के साथ शुरू करें प्रक्रिया।


1
Git में संक्रमण के कारण हैं: 1. सामुदायिक सलाह और प्रलेखन 2. व्यापक उपकरण संगतता 3. कोई विक्रेता लॉक नहीं। हमने एक टूलिंग पाइपलाइन (बड़े पैमाने पर जीरा> बिटबकेट> बांस) का निर्माण किया है जो पुनर्संस्थापन से पहले कोड की समीक्षा और इकाई परीक्षण को लागू करता है। आपने क्या विचार दिया कि हम काउबॉय हैं?
गूसडर

@Gusdor क्योंकि केंद्रीय नियंत्रण के बिना संगठनों के लिए GIT बनाया गया था जैसे काउबॉय .....
इयान

प्रश्न निकाय से: "हम एक केंद्रीकृत Git Flow मॉडल का उपयोग कर रहे हैं ..."
Gusdor

1
एक दिलचस्प बात है। जब मुझे पहली बार काम पर रखा गया, तो वीसीएस धमाकेदार हो गया और मुझे रिप्लेसमेंट पर मेरी राय पूछी गई। मैंने एसवीएन को चुना क्योंकि मुझे लगा कि जीआईटी का उपयोग केंद्रीय रूप से नहीं किया जा सकता है। हमारे दोस्तों को यकीन नहीं है कि कई लोग एसओ को ब्राउज़ करते हैं: O
Gusdor

1
@ इस तर्क से, सभी इंटरनेट उपयोगकर्ता अमेरिकी सैन्य हितों को आगे बढ़ा रहे हैं क्योंकि मूल रूप से प्रोटो-इंटरनेट मूल रूप से सेना (डीएआरपीए) द्वारा और उसके लिए बनाया गया था। वेल्क्रो स्ट्रैप शूज़ पहनने वाले भी स्पष्ट रूप से नासा हैं क्योंकि शून्य-जी अनुप्रयोगों के लिए वेल्क्रो का आविष्कार किया गया था।
maple_shaft
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.