मैंने पिछले परियोजनाओं पर स्रोत कोड भंडार बनाए रखने के लिए "पारंपरिक" संस्करण नियंत्रण प्रणाली का उपयोग किया है। मैं एक वितरित टीम के साथ एक नई परियोजना शुरू कर रहा हूं और मैं एक वितरित प्रणाली का उपयोग करने के फायदे देख सकता हूं। यह देखते हुए कि मैं सोर्ससेफ, सीवीएस, और सबवर्सन को समझता हूं; गिट नौसिखिया के लिए आपके पास क्या सुझाव हैं?मुझे इसका उपयोग शुरू करने से पहले गिट के बारे में क्या पता होना चाहिए?
उत्तर
Git - SVN Crash Course जाने के लिए एक अच्छा पढ़ा है।
फ़ाइलों को करने से पहले, उन्हें गिट स्टेजिंग क्षेत्र — प्रत्येक समय में जोड़ा जाना होगा। इसे आसान बनाने के लिए, git commit -a
में सभी ट्रैक की गई फ़ाइलों को जोड़ने के लिए -a
विकल्प है।
इसके अलावा, जब आप git diff
करते हैं, तो यह केवल आपको अपनी कार्यशील प्रति और स्टेजिंग क्षेत्र में क्या अंतर दिखाता है। यदि आपने फ़ाइलों को अपने स्टेजिंग क्षेत्र में बदल दिया है, तो git diff
कुछ भी रिपोर्ट नहीं कर सकता है भले ही आपके पास असामान्य परिवर्तन हो। सुनिश्चित करने के लिए git status
का उपयोग करें।
तो यह के साथ चारों ओर खेलने करो। अपने मुख्य कोडबेस के साथ काम करना शुरू करने से पहले इसके लिए एक महसूस करने के लिए एक छोटी खिलौना परियोजना करें।
मैं पैच की समीक्षा करने के लिए बहुत कुछ गिटक का उपयोग करता हूं और ट्रैक करता हूं कि कोड प्रतिबद्धता से कैसे बदलता है।
मैंने अपनी कंपनी में गिट की कोशिश की। हमने सीवीएस का उपयोग किया और एक बेहतर वीसी उपकरण में जाना चाहता था। हमने गिट को फाइल वर्जनिंग (जीआईटी पर लिनस) के लिए सबसे अच्छा टूल चुना है। इसका प्रदर्शन केवल सर्वोत्तम है और यह डेवलपर के लिए वास्तव में एक बहुत अच्छा टूल है जो संस्करण नियंत्रण में गहराई से समझता है लेकिन यह नियमित डेवलपर्स के लिए एक दुःस्वप्न है जो पृष्ठभूमि में संस्करण नियंत्रण का उपयोग करता है और नहीं सीखना चाहता कि अधिक उपयोग कैसे करें कुछ घंटों की तुलना में (और उन्हें बहुत कुछ सीखने की आवश्यकता है)
इसके अलावा मौजूदा आईडीई के साथ यह एकीकरण पूर्ण होने के लिए बहुत दूर है। पूरी उपयोगिता नियमित डेवलपर के लिए बहुत बड़ी समस्या है।
4 डेवलपर्स के साथ एक पायलट के बाद हमने सबवर्सन को सबसे सरल के रूप में स्विच किया, हालांकि इतना बेहतर उपकरण नहीं था।
वहाँ भी सबवर्सन एकाधिक के लिए वाणिज्यिक समाधान (जो हम अभी तक की कोशिश नहीं की थी लेकिन जल्द ही कोशिश करेंगे) है - WANDisco
सबवर्सन से Git में जाने मेरे अपने अनुभव में, सबसे महत्वपूर्ण बात यह है कि तुम क्या करने की जरूरत नहीं है सीखने के लिए, लेकिन आपको को अनलेर्न करने की आवश्यकता है। वितरित संस्करण नियंत्रण बहुत केन्द्रीकृत संस्करण नियंत्रण से अलग है। सीवीसी डीवीसी का सबसेट है, इसलिए आप एक डीवीसी उपकरण में सीवीसी कर सकते हैं, लेकिन यह सीवीसी उपकरण की तुलना में अधिक जटिल होगा।
सीवीसी को अनदेखा करने का प्रयास करें, और डीवीसी मानसिकता में आएं। यदि आप एक डीवीसी उपकरण में सीवीसी कर रहे हैं, तो आप केवल सभी अतिरिक्त जटिलताओं से निराश होंगे और आपको यह नहीं पता होगा कि लचीलापन के मामले में वह अतिरिक्त जटिलता आपको क्या खरीद रही है।
सभी डीवीसी उपकरणों में महान और शाखाकरण और विलय के लिए बहुत शक्तिशाली समर्थन है। इसका इस्तेमाल करें। सभी इतिहास आपकी उंगलियों पर उपलब्ध है। इसका इस्तेमाल करें। (उदाहरण के लिए: कोड को कभी भी टिप्पणी न करें, बस इसे हटाएं। आप इसे किसी भी इंटरनेट कनेक्शन के बिना एक हवाई जहाज पर भी वापस ले सकते हैं।)
गिट का एक बहुत ही महत्वपूर्ण पहलू: अन्य सभी उपकरणों में कम या ज्यादा परिभाषित वर्कफ़्लो है। गिट नहीं करता है। गिट एक डीवीसीएस वर्कफ़्लो निर्माण किट है। इससे कभी-कभी यह जानना मुश्किल हो जाता है कि क्या करना है: आपको अपने स्वयं के वर्कफ़्लो को डिज़ाइन और कार्यान्वित करना है (संकेत: बहुत सारे शैल स्क्रिप्ट का उपयोग करें)। मैं अब एक साल से अधिक समय के लिए गिट का उपयोग करता हूं, और मैंने अभी तक पूरी तरह से अपना वर्कफ़्लो नहीं निकाला है।
- 1. क्या मुझे कुछ भी टिंकर और पायगमेम का उपयोग करने के बारे में पता होना चाहिए?
- 2. मुझे प्रोटोटाइप उपयोगकर्ता के रूप में क्या jQuery परेशानियों के बारे में पता होना चाहिए?
- 3. मुझे इकाई फ्रेमवर्क के बारे में परेशान क्यों होना चाहिए?
- 4. मुझे पृष्ठभूमि थ्रेड में ईमेल भेजने के बारे में क्या पता होना चाहिए? एएसपी.नेट
- 5. मुझे खोज इंजन क्रॉलिंग के बारे में क्या पता होना चाहिए?
- 6. क्या मुझे इसका उपयोग करने से पहले boost :: shared_ptr या std :: shared_ptr जांचना चाहिए?
- 7. NuGet आधिकारिक पैकेज स्रोत: क्या मुझे पैकेज की सुरक्षा के बारे में चिंतित होना चाहिए?
- 8. क्या मुझे एकाधिक डेटाबेस से कनेक्शन के प्रदर्शन के बारे में चिंतित होना चाहिए?
- 9. क्या मुझे LINQ से SQL का उपयोग शुरू करना चाहिए?
- 10. गिट में आने से पहले मुझे मंच क्यों चाहिए?
- 11. स्वचालन कब शुरू होना चाहिए?
- 12. नामस्थान नाम चुनते समय मुझे क्या पता होना चाहिए?
- 13. मुझे जापानी में अपना I18N एप्लिकेशन काम करने के लिए क्या पता होना चाहिए?
- 14. क्या मुझे रेल में ब्लॉग बनाना चाहिए या कुछ ऐसा पहले से मौजूद होना चाहिए?
- 15. पीडीओ क्या है और मुझे इसका उपयोग क्यों करना चाहिए?
- 16. NHibernate क्या है और मुझे इसका उपयोग क्यों करना चाहिए?
- 17. वेब एप्लिकेशन जारी करने से पहले मुझे क्या जांचना चाहिए?
- 18. मुझे एक एपीआई चाहिए। मुझे कहां से शुरू करना चाहिए?
- 19. क्या मेरे जावा विकास को विंडोज से मैक में स्विच करने से मुझे कोई समस्या या लाभ पता होना चाहिए?
- 20. क्या मुझे संकलन करने से पहले परीक्षण लिखना चाहिए?
- 21. पता देश के प्रारूप में डाक पता प्रारूपित करने के लिए मुझे क्या उपयोग करना चाहिए
- 22. क्या मुझे इसका उपयोग करने से पहले MessageDigest.reset() को कॉल करने की आवश्यकता है?
- 23. क्या मुझे अपने .NET कोड को obfuscating के बारे में चिंतित होना चाहिए?
- 24. एमआईपीएस से x86 असेंबली में स्विच करते समय मुझे क्या पता होना चाहिए?
- 25. PHP/MySQL वेब डेवलपर को सर्वर के बारे में क्या पता होना चाहिए?
- 26. डीएसएल क्या है और मुझे इसका उपयोग कहां करना चाहिए?
- 27. इकाई परीक्षण और एकीकरण परीक्षण क्या हैं, और मुझे किस प्रकार के परीक्षण के बारे में पता होना चाहिए?
- 28. प्रवेश-स्तर रेल नौकरी पाने से पहले आपको क्या पता होना चाहिए?
- 29. क्या मुझे वेबसाइटों को तैनात करने के लिए गिट का उपयोग करना चाहिए?
- 30. क्या मुझे "addClass" से पहले "हैस्क्लास" का उपयोग करना चाहिए?
... जब तक आप "git diff foo/bar.file" आदेश नहीं देते –