दृश्य स्टूडियो 2013 का उपयोग करते समय स्रोत नियंत्रण के लिए TFVC (TFS संस्करण नियंत्रण) और Git के बीच बड़े अंतर क्या हैं?


101

जीआईटी बनाम टीएफवीसी सोर्स कंट्रोल के बारे में बहुत सारे सवाल और जवाब हैं, लेकिन कोई भी मौजूदा जवाब टीम फाउंडेशन सर्वर / सर्विस में गेट के एकीकरण को कवर नहीं करता है जो मुझे मिल सकता है।

मैं विजुअल स्टूडियो 2013 का उपयोग करते हुए विभिन्न प्रकार की भाषाओं (C #, C ++, PHP, Javascript, MySSQL) का उपयोग करके हरा चारागाह विकास शुरू कर रहा हूं। भविष्य में, कुछ iOS विकास होगा। मैं स्रोत नियंत्रण के लिए एसवीएन, वीएसएस और टीएफवीसी से बहुत परिचित हूं। हालांकि, मैंने कभी भी गिट का इस्तेमाल नहीं किया है। मैं प्रक्रिया प्रबंधन / चुस्त विकास के लिए टीएफएस पसंद करता हूं ... यह सही नहीं है, लेकिन यह विजुअल स्टूडियो में अच्छी तरह से एकीकृत होता है।

तो, मुझे इन दो प्रणालियों के बीच निर्णय लेने में मदद करने के लिए ...

Visual Studio 2013 का उपयोग करते समय स्रोत नियंत्रण के लिए TFVC और Git के बीच बड़े अंतर क्या हैं?

  • क्या मेरे मामले में एक स्थानीय रिपॉजिटरी (केवल यह कहना कि यह महत्वहीन है) और iOS के विकास का समर्थन में एकमात्र लाभ है?
  • कमांड लाइन इंटरफ़ेस को निकालने के लिए एकमात्र दोष है (कुछ का तर्क होगा कि यह एक दोष नहीं है; -पी)।
  • क्या आपने विजुअल स्टूडियो 2013 जीयूआई फॉर गिट में अनुभव किया है? क्या कमांड लाइन इंटरफ़ेस के बिना बुनियादी ब्रांचिंग / मर्जिंग का समर्थन करने के लिए पर्याप्त है?
  • क्या Git के लिए एक विस्तृत स्टार्ट-अप गाइड है जो Git को विजुअल स्टूडियो 2013 के साथ उपयोग किया जा रहा है? Microsoft के पास मौजूदा Git रिपॉजिटरी को Visual Studio 2013 में एकीकृत करने के लिए एक वीडियो है, लेकिन मैं Git और VS 2013 के साथ स्क्रैच से एक शुरुआत की तलाश कर रहा हूं।

मैं यहाँ एक किताब की तलाश में नहीं हूँ, लेकिन सिर्फ कुछ बुलेट पॉइंट और शायद लोगों के कुछ प्रासंगिक लिंक जो TFVC और Git दोनों का उपयोग करते हैं।

जवाबों:


115

वीएस 2013 का उपयोग करते समय स्रोत नियंत्रण के लिए टीएफएस और गिट के बीच बड़े अंतर क्या हैं?

MSDN के पास टीम फाउंडेशन संस्करण नियंत्रण और Git के बीच सभी सुविधाओं और अंतरों पर एक बहुत व्यापक पृष्ठ है

क्या मेरे मामले में एकमात्र लाभ स्थानीय भंडार (यह कहते हुए कि तुच्छ है) और आईओएस विकास का समर्थन है?

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

विलय से पहले इतिहास को फिर से लिखने की क्षमता आपको कई छोटे परिवर्तन सेटों को निकालने या संयोजित करने की अनुमति देती है, जिससे कि इतिहास क्लीनर और मानव के रूप में पढ़ने में आसान हो।

कमांड लाइन इंटरफ़ेस को निकालने के लिए एकमात्र दोष है (कुछ का तर्क होगा कि यह एक दोष नहीं है; -पी)।

TFVC में एक कमांड लाइन भी है, लोग इसका उपयोग नहीं करते हैं। उन लोगों के लिए जो Git का उपयोग करना चाहते हैं और TFVC की तुलना में कभी अधिक नहीं करते हैं, उन्हें संभवतः UI छोड़ने की आवश्यकता नहीं होगी, हालांकि उन्हें बहुत सारी शानदार सुविधाएँ नहीं मिलेंगी ...

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

विंडोज पर Git उपयोगकर्ताओं के लिए एक बहुत अच्छा ऐड-ऑन PoSHGit है । यह पॉवर्सशेल कमांडलाइन पर कमांड ऑटोकंप्लीशन प्रदान करता है।

क्या आपने वीआईएस 2013 जीयूआई फॉर गिट में अनुभव किया है? क्या कमांड लाइन इंटरफ़ेस के बिना बुनियादी ब्रांचिंग / मर्जिंग का समर्थन करने के लिए पर्याप्त है?

यह आपके पास बुनियादी कार्यों के लिए आवश्यक है। लेकिन आपको यह जानने के लिए विभिन्न शाखाओं की कल्पना करने में सक्षम होने की आवश्यकता है कि क्या हो रहा है। चूंकि Git सर्वर और लोकल रेपो सिर्फ Git हैं, कोई भी git क्लाइंट यहां आपकी मदद कर सकता है। SourceTree यहां एक विकल्प है। विंडोज क्लाइंट के लिए Git एक और है।

मानक संचालन के लिए, चेक-इन, चेक-आउट, मर्ज, शाखा (या पुश, पुल, फ़िश, कमिट, मर्ज) UI ठीक काम करता है।

क्या जीआईटी के लिए एक विस्तृत स्टार्ट-अप गाइड है जो वीएस 2013 के साथ जीआईटी का उपयोग करता है? एमएस के पास वीएस 2013 में मौजूदा गिट रेपो को एकीकृत करने के लिए एक वीडियो है, लेकिन मैं जीआईटी और वीएस 2013 के साथ खरोंच से एक शुरुआत की तलाश कर रहा हूं?

Git से शुरू होने वाले स्थान कई स्थानों पर उपलब्ध हैं ... ये कुछ विकल्प हैं:

अन्य अच्छे पढ़े:

और स्थापित करने के लायक कुछ उपकरण:


3
ALM रेंजर्स जल्द ही यहां TFVC यूजर्स गाइडेंस के लिए अपना Git जारी करेंगे: vsarbranchingguide.codeplex.com/releases । वर्तमान बीटा रिलीज़ में यह अभी तक नहीं है, मुझे उम्मीद है कि यह अगले बैच के साथ गिर जाएगा :)।
jessehouwing

8
अपनी मूल पोस्ट के लगभग एक साल बाद, मैंने सोचा कि मैं आप सभी को बता दूं कि हम VS2013 को Git के साथ सफलतापूर्वक प्रयोग कर रहे हैं। किसी एकल टीम प्रोजेक्ट के तहत कई रिपॉजिटरी बनाने की क्षमता से प्यार करें। हमें विलय करने में कुछ समस्याएँ हुईं। कई उदाहरणों में ऑटो-मर्ज गलत तरीके से चुनता है। तो क्या एक सफल मर्ज की तरह लग रहा है वास्तव में नहीं है। अब हम सभी मर्ज की गई फ़ाइलों की दोबारा जाँच करते हैं। इसके अलावा, ऐसे कुछ उदाहरण हैं जहां मर्ज चोक हो जाता है और वीएस यूआई (libgit2 मर्ज संघर्ष) में एक त्रुटि फेंकता है। ठीक करने के लिए, हमें cmd ​​प्रॉम्प्ट पर ड्रॉप करना होगा और गिट पुल (फन नहीं) जारी करना होगा।
ग्रेग ग्रेटर

1
मुझे पता है कि अपडेट 4 के हिस्से के रूप में उस अंतिम त्रुटि के लिए एक फिक्स है। और ऐसे मामले थे जहां एंड-लाइन सेटिंग्स डेवलपर्स के बीच भिन्न थीं जो इन मुद्दों को उत्पन्न कर सकती हैं।
jessehouwing

5
हम वीएस 2013 डब्ल्यू / अपडेट 4 का उपयोग कर रहे हैं क्योंकि यह महीनों पहले गिरा था और ऐसा लगता है कि हमारे जीआईटी के सभी मुद्दों को जीयूआई से तय किया है। हम रिमोट सर्वर से नियमित रूप से खींचने की आदत में हैं जो हमारे स्थानीय रिपॉजिटरी को अप-टू-डेट रखने में मदद करता है। इसके अलावा, MS देर से प्रोडक्ट बैकलॉग / टास्क बोर्ड के कई सकारात्मक अपडेट से गुजर रहा है। बोर्ड से सीधे, अब आप विवरण संपादित कर सकते हैं, असाइन कर सकते हैं, स्थिति सेट कर सकते हैं और आइटम की प्राथमिकता / क्रम को समायोजित कर सकते हैं।
ग्रेग ग्रैटर

1
"गेट बनाम टीएफवीसी" लिंक "गेट का उपयोग करना शुरू करें" से जोड़ रहे हैं। अब इसका मतलब यह है कि हम बेहतर TFVC पर Git का उपयोग करना चाहिए? ; डी को एक नई कड़ी मिली: visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc
मार्टिन श्नाइडर

17

कुछ भ्रमित मिश्रित शब्दावली को साफ करने के लिए जिसका उपयोग टीएफएस के साथ बहुत अधिक किया जाता है

टीम फाउंडेशन सर्वर (TFS) एक आवेदन जीवन चक्र प्रबंधन उपकरण है, जो है भी शामिल है एक स्रोत संस्करण नियंत्रण प्रणाली (VCS) घटक।

TFS का उपयोग करने वाला VCS घटक मुख्य रूप से टीम फाउंडेशन संस्करण नियंत्रण (TFVC) है

तो, सवाल TFVC बनाम होगा गिट होगा

(वास्तव में, TFS एक GCS विकल्प के रूप में Git का समर्थन करता है।)

तो, सवाल यह है: TFVC बनाम गिट

jessehouwing के पास एक बढ़िया उत्तर है जो इसे अच्छे तरीके से कवर करता है, इसलिए कृपया इसका संदर्भ लें

जहाँ तक जो उपयोग करने के लिए चुनने, मेरी राय में के रूप में Git जीत

  1. यह हल्का है: सेटअप करने के लिए सरल और उपयोग करना शुरू करें।
  2. यह वितरित प्रकृति का मतलब है कि यह आपदाओं के लिए बहुत लचीला है, किसी के पास हमेशा रेपो की एक प्रति होगी।
  3. ऑफ़लाइन कार्य सरल है, आप अपने पूर्ण भंडार के साथ काम कर रहे हैं। आप परिवर्तन कर सकते हैं, वापस लौट सकते हैं, इतिहास को ब्राउज़ कर सकते हैं, आदि। आपको केवल तब ही ऑनलाइन होना चाहिए जब आप दूरस्थ रिपॉजिटरी के साथ सिंक करना चाहते हैं।
  4. TFS में आपके परिवर्तनों की स्थिति को बचाने का कोई सरल तरीका नहीं है (फ़ाइल परिवर्धन, संशोधन, फ़ाइल विलोपन), और कोड की किसी अन्य स्थिति पर स्विच करें। (उदाहरण के लिए, दो विशेषताओं पर काम करने और आगे और पीछे स्विच करने के लिए)। Git में, आप बस एक अलग शाखा की जांच करते हैं।

1
TFS की शाखाएँ और शेल्फ सेट हैं (जो # 5 की अनुमति देता है) और यदि आप वास्तव में चाहते हैं तो आप git का उपयोग करने के लिए अपनी परियोजनाओं को कॉन्फ़िगर भी कर सकते हैं। TFS VCS में # के लिए कमांड लाइन भी है। यह हल्का नहीं है, लेकिन यह बॉक्स की तुलना में बहुत अधिक नरक से बाहर निकलता है, क्योंकि इसमें एक पूर्ण परियोजना प्रबंधन / बग ट्रैकिंग / कार्य ट्रैकिंग / रिलीज़ प्रबंधन / बिल्ड प्रबंधन / चेक-इन नीति / परीक्षण निर्मित है।
मैथ्यू Whited

@MatthewWhited यकीन है कि यह संभव है, लेकिन यह git की तुलना में बेहद बोझिल है, इसका कारण है निर्देशिका का कार्यान्वयन बनाम git का ग्राफ-आधारित कार्यान्वयन। ध्यान दें कि मैंने कहा था कि ऐसा करने का कोई simpleतरीका नहीं है।
जेम्स विर्ज़बा

@MatthewWhited इसके अलावा, मैं अतिरिक्त एप्लिकेशन जीवनचक्र टूलिंग पर सहमत हूं, लेकिन मैं केवल समाधान को नियंत्रित करने वाले स्रोत कोड संस्करण के लिए अपना उत्तर दे रहा हूं।
जेम्स विर्ज़बा

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

पता नहीं। जीआईटी बस उस कार्य के लिए बहुत जटिल है जिसका उद्देश्य पूरा करना है और बहुत ही सहज ज्ञान युक्त है (यह एक पुल अनुरोध क्यों है और पुश अनुरोध नहीं है!)। TF स्रोत नियंत्रण बहुत सरल है और मेरी टीम में किसी भी नए डेवलपर को मिनटों में समझाया जा सकता है। मैं स्थानीय स्तर पर एक टीम के अंदर और यहां तक ​​कि व्यक्तिगत रूप से बड़े नुकसान के रूप में काम करने को प्रोत्साहित करता हूं। आप शाखाओं के साथ परियोजना को पूरा किए बिना Git में अपना काम कैसे रोक सकते हैं? (इसके लिए TFS - ON THE SERVER) में अलमारियाँ हैं
सीज़र

4

कमांड लाइन इंटरफ़ेस को निकालने के लिए एकमात्र दोष है (कुछ का तर्क होगा कि यह एक दोष नहीं है; -पी)।

यदि आप कमांड लाइन इंटरफेस के साथ असहज हैं, तो जीआईटी के लिए कई जीयूआई दृश्य उपलब्ध हैं। Git में वास्तव में रिपॉजिटरी ब्राउज़र GUI टूल होता है, जिसे gitkऔर git-guigit के लिए GUI कहते हैं । इसके बाद थर्ड-पार्टी ऐप जैसे कि git-cola , TortoiseGit और अन्य हैं


2
बेशक विजुअल स्टूडियो खुद ही Git के लिए GUI प्रदान करता है। लेकिन हमेशा ऐसे समय होते हैं जब आप कमांडलाइन में गोता लगाना चाहते हैं जो कि असंभव है। एक GUI जो सभी Git कमांड को उजागर करता है, कमांडलाइन की तरह ही कठिन है।
jessehouwing

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