विजुअल स्टूडियो के साथ गिट का उपयोग करना [बंद]


1455

एक लंबे समय के दृश्य SourceSafe उपयोगकर्ता (और नफरत) के रूप में मैं एक सहयोगी के साथ SVN पर स्विच करने पर चर्चा कर रहा था ; उन्होंने इसके बजाय Git का उपयोग करने का सुझाव दिया । चूंकि, जाहिरा तौर पर, यह एक केंद्रीय सर्वर के बिना सहकर्मी से सहकर्मी के रूप में इस्तेमाल किया जा सकता है (हम 3-डेवलपर टीम हैं)।

मैं उपकरणों के बारे में कुछ भी नहीं पा रहा हूं जो विजुअल स्टूडियो के साथ गिट को एकीकृत करता है, हालांकि - क्या ऐसा कुछ मौजूद है?

विजुअल स्टूडियो के साथ Git का उपयोग करने के लिए कौन सी प्रौद्योगिकियां उपलब्ध हैं? और मुझे यह जानने की आवश्यकता है कि मेरे शुरू होने से पहले वे कैसे भिन्न होते हैं?


4
मैंने अभी वीएस 2010 के लिए गिट सोर्स कंट्रोल प्रोवाइडर को जोड़ा है, इसलिए यह अभी भी काम करता है।
वाडे 73

3
वीएस टीम से इस ट्यूटोरियल की जांच करें । अगला अपडेट; VS 2012 के लिए अपडेट 2 अब किसी भी दिन आ रहा है। आप यहां से VS2012 के लिए सामुदायिक प्रौद्योगिकी पूर्वावलोकन (CTP) भी डाउनलोड कर सकते हैं । वैकल्पिक रूप से, यदि आप CMMI, Agile, Scrum 1/2 आदि में हैं, तो आप वेब-आधारित TFS tfs.visualsudio
एनी

3
मैं दो साल से Visual Studio और git का उपयोग कर रहा हूं। मैं कहूंगा कि इस समस्या का सबसे अच्छा समाधान केवल एटलसियन सोर्सट्री जैसे एक अलग स्रोत नियंत्रण अनुप्रयोग का उपयोग करना है। यह मुफ़्त है, स्थापित करना आसान है, एक अच्छा जीयूआई है और यह उपयोगकर्ता के अनुकूल है, आप कई रिपॉजिटरी (उर्फ विभिन्न प्रोजेक्ट्स) ब्राउज़ कर सकते हैं जैसे आप क्रोम में वेब ब्राउज़ करेंगे, और, सबसे महत्वपूर्ण बात, कई स्रोत नियंत्रण प्रणालियों का समर्थन करते हैं। कोशिश करो! आप निराश नहीं होंगे, मैं आपको विश्वास दिलाता हूं!
फाज़ी

2
Git को मूल रूप से विज़ुअल स्टूडियो 2013 से शुरू करने का समर्थन किया गया है
rustyx

17
मैं प्यार करता हूँ कि कैसे 1342 लोगों ने इस सवाल को उकेरा है और कुछ बेवकूफ भी आते हैं और इसे बंद कर देते हैं। अच्छा जा रहा है StackOverfolow .... अगर यह बहुत सारे लोगों को इतना मददगार लगता है तो क्या फर्क नहीं पड़ता अगर SO के मापदंड फिट नहीं है। क्या इस वेबसाइट की बात मददगार नहीं है?
thebunnyrules

जवाबों:


1070

जनवरी 2013 में, Microsoft ने घोषणा की कि वे अपने सभी ALM उत्पादों में पूर्ण Git समर्थन जोड़ रहे हैं। उन्होंने एक प्लगइन प्रकाशित किया है विजुअल स्टूडियो 2012 के लिए जो गिट स्रोत नियंत्रण एकीकरण को जोड़ता है।

वैकल्पिक रूप से, एक परियोजना है जिसे गिट एक्सटेंशन कहा जाता है है जिसमें विजुअल स्टूडियो 2005, 2008, 2010 और 2012 के लिए ऐड-इन्स, साथ ही साथ विंडोज एक्सप्लोरर एकीकरण भी शामिल है। यह नियमित रूप से अद्यतन किया जाता है और एक-दो परियोजनाओं पर इसका उपयोग किया है, मैंने इसे बहुत उपयोगी पाया है।

एक अन्य विकल्प गिट स्रोत नियंत्रण प्रदाता है


9
ted.dennison: इस पृष्ठ ( code.google.com/p/gitextensions ) के अनुसार यह VS 2005/2008 प्लगइन है।
जोनास

10
अपने आप को सही करने के लिए - स्रोत को जीथूब पर होस्ट किया गया है, एमएसआई नहीं हैं।
क्रिस एस

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

4
दानी, कोई वीएस के लिए एक गीट
जॉन रिमर

3
क्या वीएस 2012 के लिए कोई विकल्प हैं?
पृथ्वी इंजन

202

मैं प्रोटोकॉल बफ़र्स के अपने पोर्ट C # के लिए विजुअल स्टूडियो के साथ Git का उपयोग करता हूं। मैं GUI का उपयोग नहीं करता - मैं सिर्फ एक कमांड लाइन खुली रखता हूं और साथ ही विजुअल स्टूडियो भी।

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

लेकिन मूल रूप से - हाँ, यह ठीक काम करता है। मैं एक नौसिखिया हूँ, लेकिन मैं इसे वह सब कुछ करने के लिए प्राप्त कर सकता हूँ जिसकी मुझे आवश्यकता है। सुनिश्चित करें कि आपके पास बिन और obj, और * .user के लिए एक git अनदेखा फ़ाइल है।


35
नाम बदलने के साथ वीएस ठीक होना चाहिए। गिट लॉग में अच्छे नाम बदलने के लिए आपको बस यह सुनिश्चित करना होगा कि आप 'ऐड' वाले हिस्से के समान परिवर्तन के 'निकालें' भाग को चरणबद्ध करें। git add -A आपके ईजाद करने की तारीख तक यह आसान बना देता है।
सीबी बेली 14

40
मैं एक नौसिखिया भी हूँ, और मैं आपको यह बताने के लिए कि मैं कमांड लाइन से इसका उपयोग करना चाहता हूँ । मैं एक GUI को "समझदार" होने की कोशिश करता हूं और अपनी पीठ के पीछे कुछ "जादू" करने की कोशिश करता हूं।
hasen

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

7
@CallMeLaNN: कमांड लाइन का उपयोग करते समय Git को कठिनाई होने पर newbies के बारे में आप एक बड़ी धारणा बना रहे हैं। अप्रैल 2009 से हसन जे की टिप्पणी को देखें।
जॉन स्कीट

मैं आमतौर पर .user, * .suo, bin, obj, को जोड़ता हूं। और _ * मेरी अनदेखी सूची में ... अगर मैं चाहता हूं कि उपरोक्त में से एक है, मैं अभी भी इसे मैन्युअल रूप से जोड़ सकता हूं।
ट्रैकर 1

93

गिट सोर्स कंट्रोल प्रोवाइडर नया प्लग-इन है जो विजिट स्टूडियो के साथ गिट को एकीकृत करता है।


क्या 2005 में काम करने का कोई मौका है?
कला

3
कुंआ। टीबीएच इसका चित्रमय इंटरफ़ेस वही है जो मैं तब खोज रहा था जब मैंने वीएस 2010 के लिए जीआईआई के लिए खोज की थी। इसे पोस्ट करने के लिए धन्यवाद। अन्य उत्तर वह नहीं हैं जो मुझे चाहिए। वे VisualSVN की तुलना में खराब हैं।
JDPeckham

1
मैं बाज़ार स्थापित करने से पहले समीक्षा अनुभाग देखने की सलाह देता हूं । इसे स्थापित करने का निर्णय लेने से पहले।
QMaster

53

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

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

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

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


22
क्या आप लोग कभी भी फाइल या निर्देशिका को स्थानांतरित या नाम नहीं देते हैं? मैंने कुछ महीने पहले VisualSVN का उपयोग करना शुरू कर दिया था और मैं कभी वापस नहीं जा सका।
जॉनऑपिनकर

10
@ मेरे लिए इसका मतलब यह है कि लंबे विकास के बाद आपको हर फ़ाइल को बदलने के कारणों को याद रखना होगा जब तक आप जाँच नहीं करते। यदि मैं किसी चीज़ पर काम कर रहा हूँ और कुछ ऐसा देखता हूँ जिसे किसी असंबंधित क्षेत्र में तय करने की आवश्यकता है, तो मैं बाहर की जाँच करना पसंद करता हूँ। ठीक करें, और यह जानने में जांचें कि मैं अपनी स्मृति से उस परिवर्तन को शुद्ध कर सकता हूं। मैं इसके बजाय वी.एस.
पीटर एम

4
Git एक्सटेंशन विज़ुअल स्टूडियो प्लगइन Microsoft द्वारा प्रदान किए गए पुराने स्कूल लॉक-चेकआउट स्रोत नियंत्रण API के लिए स्वयं को जूता करने का प्रयास नहीं करता है। यह एडिट-मर्ज वर्कफ़्लो के अनुकूल है और मूल रूप से आईडीई के अंदर कमिट / पुश / पुल और फाइल हिस्ट्री जोड़ता है। संदर्भ मेनू पर फ़ाइल इतिहास होना अत्यंत उपयोगी है!
जैकब स्टेनली

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

8
VS2005 (VS2003?) के रूप में विज़ुअल स्टूडियो स्रोत नियंत्रण एकीकरण विशेष रूप से चेकआउट-चेकइन मॉडल की ओर झुकाव नहीं करता है। उदाहरण के लिए AnkhSVN को देखें। मैं वीएस एकीकरण पसंद करते हैं, क्योंकि तब नाम, आदि चिकनी हैं।
रोजर लिप्सकॉम्ब

38

मुझे लगता है कि Git, पूरे पेड़ों पर काम कर रहा है जैसा कि यह करता है, स्रोत नियंत्रण उपकरणों की तुलना में IDE एकीकरण से कम लाभ होता है जो या तो फ़ाइल आधारित हैं या चेकआउट-एडिट-कमिट पैटर्न का पालन करते हैं। निश्चित रूप से ऐसे उदाहरण हैं जब इतिहास की कुछ परीक्षाओं को करने के लिए बटन पर क्लिक करना अच्छा हो सकता है, लेकिन मुझे यह याद नहीं है।

असली-करना यह है कि आपकी .gitignore फाइल को उन चीजों से भरा होना चाहिए जो एक साझा भंडार में नहीं होनी चाहिए। मेरा आमतौर पर (अन्य सामान के बीच) निम्नलिखित होते हैं:

*.vcproj.*.user
*.ncb
*.aps
*.suo

लेकिन यह किसी भी वर्ग जादूगर शैली की कार्यक्षमता का बहुत कम या कोई उपयोग नहीं होने के साथ भारी सी ++ पक्षपाती है।

मेरा उपयोग पैटर्न निम्नलिखित की तरह कुछ है।

  1. विजुअल स्टूडियो में कोड, कोड, कोड।

  2. जब कोड करने के लिए खुश (समझदार मध्यवर्ती बिंदु, Git पर स्विच करें, तो चरण परिवर्तन और समीक्षा भिन्न होती है। यदि कुछ भी स्पष्ट रूप से गलत है, तो Visual Studio पर वापस जाएँ और ठीक करें, अन्यथा कमिट करें।

कमांड प्रॉम्प्ट से किसी भी मर्ज, शाखा, रिबास या अन्य फैंसी SCM सामान Git में करना आसान है। विज़ुअल स्टूडियो आम तौर पर इसके तहत बदलने वाली चीज़ों से काफी खुश है, हालाँकि कभी-कभी कुछ प्रोजेक्ट्स को फिर से लोड करने की ज़रूरत पड़ सकती है यदि आपने प्रोजेक्ट फ़ाइलों को महत्वपूर्ण रूप से बदल दिया है।

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


11
आप नहीं, आप निश्चित रूप से संस्करण नियंत्रण के तहत अपनी परियोजना फ़ाइल होनी चाहिए।
सीबी बेली

1
यह बहुत महत्वपूर्ण है - कुछ भी शामिल करने के लिए .गितिग्नोर में एक बार भूल जाने से उबरने और कम से कम कहने के लिए आपको दर्द हो रहा है ...
बेंजोल

3
@ बेंजोल: यह इतना दर्दनाक नहीं होना चाहिए। आपको बस अपनी सक्रिय शाखाओं की युक्तियों पर git rm <file>और इसकी आवश्यकता है echo <file> >>.gitignore; git add .gitignore। एक बार जब आप परिवर्तन कर लेते हैं तो एक बार आप अन्य शाखाओं पर फ़िक्स को चुन सकते हैं।
सीबी बेली

1
@Charles बेली, इस सवाल में मेरे कारनामों को देखें: stackoverflow.com/questions/1887049/…
बेंजोल

9
@ माइक ब्राउन: वह * .यूज़र फ़ाइलों को अनदेखा कर रहा है, जो उपयोगकर्ता-विशिष्ट सेटिंग्स हैं।
श्रीजान जोविक १d

31

Microsoft ने हाल ही में विजुअल स्टूडियो 2012 (अपडेट 2) के लिए Git की घोषणा की । मैंने अभी तक इसके साथ नहीं खेला है, लेकिन यह वीडियो आशाजनक है।

यहाँ दृश्य स्टूडियो 2012 से गिट का उपयोग करने के बारे में एक त्वरित ट्यूटोरियल है


मैं यह सलाह देता हूं क्योंकि यह Microsoft आधिकारिक उत्पाद है। और यह वीएस 2012 एक्सप्रेस और
चेउंग

28

इसके अलावा कछुआ याद मत करो ... https://tortoisegit.org/


हां, यह एक अच्छा यूआई है, लेकिन नहीं, यह विजुअल स्टूडियो के साथ एकीकृत नहीं है।
स्कॉट रिप्पी

3
Git Source Control प्रदाता दृश्य स्टूडियो में संदर्भ मेनू में TortoiseGit कमांड जोड़ता है।
हॉटएन

26

Microsoft द्वारा Git के लिए एक विजुअल स्टूडियो टूल्स है । यह केवल विजुअल स्टूडियो 2012 (अपडेट 2) का समर्थन करता है।


दृश्य स्टूडियो 2012 के लिए, यह सबसे अच्छा जवाब है। ऐसा प्रतीत होता है कि उन्होंने कार्यान्वयन में बहुत प्रयास किया, और मेरे अनुभव में यह उम्मीद के मुताबिक काम करता है!
RoelF

2
मैं यह समझने में सक्षम नहीं हूं कि निजी गिथब रेपो का उपयोग करने के लिए Microsoft द्वारा "विजुअल स्टूडियो टूल्स फॉर गिट" को कैसे कॉन्फ़िगर किया जाए। क्या आपने उस पर कोई प्रलेखन या ट्यूटोरियल देखा है?
गोलिहर

मैं बाज़ार स्थापित करने से पहले समीक्षा अनुभाग देखने की सलाह देता हूं । इसे स्थापित करने का निर्णय लेने से पहले।
QMaster


18

Microsoft द्वारा Visual Studio में किया गया Git सपोर्ट सिर्फ बेसिक वर्क (कमिट / भ्रूण / मर्ज और पुश) के लिए पर्याप्त है। मेरी सलाह सिर्फ इससे बचने की है ...

मैं GitExtensions (या कम अनुपात में SourceTree ) को बहुत पसंद करता हूं । क्योंकि GAG कैसे काम करता है, यह समझने के लिए DAG देखना मेरे लिए बहुत महत्वपूर्ण है। और आप बहुत अधिक जागरूक हैं कि आपकी परियोजना के अन्य योगदानकर्ताओं ने क्या किया है!

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

और, उदाहरण के लिए, GitExtensions को दिलचस्प प्लगइन्स के साथ बंडल किया गया है: पृष्ठभूमि लाने, GitFlow, ... और अब, निरंतर एकीकरण !

यदि आप GitHub एक्सटेंशन स्थापित करते हैं, तो विजुअल स्टूडियो 2015 के उपयोगकर्ताओं के लिए , Git आकार ले रहा है। लेकिन एक बाहरी उपकरण अभी भी बेहतर है ;-)


GitExtensions बनाम 2015 में आपके लिए काम करता है? मेनू मेरे लिए काम नहीं करता है github.com/gitextensions/gitextensions/issues/2815
raklos

15

TortoiseGit परिपक्व हो गया है और मैं इसे विशेष रूप से सुझाता हूं यदि आपने TortoiseSVN का उपयोग किया है।


15

की नवीनतम रिलीज Git एक्सटेंशन का समर्थन करता है दृश्य स्टूडियो 2010 अब (के साथ विजुअल स्टूडियो 2008 और दृश्य स्टूडियो 2005 )।

मैंने पाया कि विज़ुअल स्टूडियो 2008 के साथ उपयोग करना काफी आसान है और विज़ुअल स्टूडियो 2010 में इंटरफ़ेस समान है।


14

सबसे सरल समाधान जो वास्तव में काफी अच्छी तरह से काम करता है, वह है बाहरी उपकरणों के रूप में कछुआ कमान को जोड़ना।

Visual Studio में Git (TortoiseGit) टूलबार जोड़ने का समाधान


1
आप पैकेज मैनेजर कंसोल से सीधे git को भी कॉल कर सकते हैं, जो कि केवल एक पॉवरशेल कमांडलाइन है। या ... superuser.com/a/879561/135416
drzaus

10

जॉन रिममर द्वारा मंत्रमुग्ध के रूप में, आप GitExtensions का उपयोग कर सकते हैं। GitExtensions Visual Studio 2005 और Visual Studio 2008 में काम करता है, यह Visual Studio 2010 में भी काम करता है यदि आप मैन्युअल रूप से और .Addin फ़ाइल को कॉन्फ़िगर करते हैं।


अच्छा था। मुझे आश्चर्य है कि कौन उपयोगकर्ता इंटरफ़ेस का परीक्षण और अनुमोदन कर रहा है ... सभी संदेश बहुत भ्रमित कर रहे हैं ... मेरा एकमात्र अनुमान यह है कि वे इसे डालने के लिए दौड़े और देखें कि उपयोगकर्ता क्या / क्यों शिकायत करता है।
ramnz

10

वर्तमान में विजुअल स्टूडियो (2010 और 12) में Git Source Control के लिए 2 विकल्प हैं:

  1. Git Source Control प्रदाता
  2. Microsoft गिट प्रदाता

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

नोट : आप जो भी एक्सटेंशन का उपयोग करते हैं, सुनिश्चित करें कि आप Tools -> Options -> Source control -> Plugin Selectionइसे काम करने के लिए सक्षम करते हैं।


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