git - विंडोज़ के तहत गिट: एमएसवाईएस या सिगविन?




cygwin msysgit (9)

पुराने प्रश्न का नया जवाब ...

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

core.autocrlf=true
core.safecrlf=false

यह नहीं कह रहा कि आपको * nix-y खोल का उपयोग नहीं करना चाहिए, बस यह जरूरी नहीं है।

मैं अपनी परियोजनाओं को गिट पर माइग्रेट करने की योजना बना रहा हूं, और मैं वर्तमान में सोच रहा हूं कि विंडोज़ के तहत सबसे अच्छा और / या सबसे स्थिर विकल्प कौन सा है।

जो मैं इकट्ठा करता हूं उससे मूल रूप से 2.5 विकल्प होते हैं:

  1. MSYSgit
  2. सिगविन के नीचे गिट
  3. (उर्फ 2.5) एक सिग्विन प्रॉम्प्ट से MSYSgit (दिया गया है कि सिग्विन गिट पहले से स्थापित है)।

नोट: आईएमओ सिगविन अपने आप में एक बड़ा प्लस है क्योंकि आप सभी * nix कमांड लाइन टूल्स तक पहुंच सकते हैं, जहां MSYSgit bash के साथ, आप केवल इन उपकरणों के बजाय छोटे से सबसेट तक पहुंच सकते हैं।

यह देखते हुए, आप किस विकल्प का सुझाव देंगे?


मेरे पास Cygwin ओर आरक्षण है क्योंकि मुझे केवल गिट चाहिए और Cygwin किसी भी अन्य उपकरण को नहीं करना चाहिए। आम तौर पर आप चाहते हैं कि आपके विंडोज कंप्यूटर विंडोज कंप्यूटर की तरह काम करें और सिगविन कुछ पूरी तरह से अलग हो जाए। सिर्फ किक्स के लिए * निक्स कार्यक्षमता पर slapping जाना नहीं है।

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

CygWin का उपयोग करने के लिए वास्तव में एक वैध कारण होना आवश्यक है। अगर यह सिर्फ गिट का उपयोग करने के लिए है तो मैं सुझाव MSYSgit कि आप MSYSgit उपयोग करें, जो मेरी प्राथमिकता है। यह गिटक और गिट-गुई टूल्स के साथ वास्तव में अच्छी तरह से काम करता है जो बंडल किए जाते हैं। मैं msysgit का उपयोग कर ग्रहण और विजुअल स्टूडियो दोनों पर काम कर रहा हूं और यह एक आकर्षण की तरह काम करता है।

एकमात्र चीज जो मैं अभी इंतजार कर रहा हूं वह गिट के लिए एक पूरी तरह से काम करने वाली कछुए क्लोन है


मैं वर्तमान में TortoiseGit के साथ Msysgit का उपयोग करें।

MsysGit UI वास्तव में मेरी पसंद के लिए नहीं है इसलिए मैं एक परिचित उपकरण जैसे TortoiseGit का उपयोग करता हूं और कमांडलाइन (अधिकांश समय) पर काम करते समय, मैं Msysgit से गिट बाइनरी का उपयोग करता हूं


मैंने एमएसआईएस के सिग्विन कार्यान्वयन में गंभीर कीड़े में भाग लिया है: कुछ आदेश, विशेष रूप से रिबेस, विफलता के लिए काफी प्रवण थे। सिगविन मेरे लिए बहुत अधिक स्थिर था।

उस ने कहा, यह एक महीने पहले था, तब से बेहतर हो सकता है।


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

अभी तक कोई गहरा विश्लेषण नहीं हुआ, हालांकि ...


मैंने विंडोज के साथ सिग्विन गिट और मैसिगिट दोनों का उपयोग किया है। मैं सिग्विन + गिट का उपयोग करने का सुझाव दूंगा। सिगविन 1.7 (वर्तमान में बीटा में) गिट गुई और गिटक का उपयोग करते समय एक प्रमुख बारीकियों (कम से कम मेरे लिए) को संबोधित करता है। सिगविन के पहले संस्करण हर बार जब मैं गिट-गुई या गिटक में कुछ करता हूं तो 10 सेकंड सेमीड विंडोज़ खोलता था। इसे 1.7 में संबोधित किया गया है। सिगविन का शक्तिशाली खोल लिनक्स टर्मिनल के कई सामानों में भी लाता है।

उस ने कहा, मैसिगिट काफी विकसित हुआ है और विंडोज़ में वास्तव में उपयोगी है। हालांकि मुझे कुछ मुद्दों का सामना करना पड़ा।

अनुमति समस्या: विंडोज़ में मूल रूप से बनाई गई कुछ फाइलों में मोड 755 था जो Msysgit का उपयोग करते समय 644 में परिवर्तित हो गया था। यह संशोधित फ़ाइलों के रूप में दिखाई देगा। एक चेकइन को इस मुद्दे को ठीक करना चाहिए।

सीआरएलएफ: सामान्य रूप से सभी छिपी हुई सीआरएलएफ विंडोज़ में समस्याएं पैदा करती है। Msysgit फ़ाइलों को संशोधित के रूप में रिपोर्ट कर सकता है। यह Msysgit इंस्टॉल करते समय "लाइन लाइन अंतराल अपरिवर्तित" (सटीक पाठ भूल गया) चुनकर तय किया जा सकता है।

डेमन: और हाँ, मुझे अभी भी मैसिगिट में गिट डिमन सेट करना मुश्किल लगता है।


विंडोज के तहत एक परिदृश्य है जहां आपको सिगविन के माध्यम से गिट का उपयोग करना होगा: यह तब होता है जब आप एक एसवीएन सर्वर के खिलाफ गिट का उपयोग करना चाहते हैं, जो एसवीएन क्लाइंट संस्करण 1.5 से अधिक की अपेक्षा करता है। एसवीएन प्री-प्रतिबद्ध हुक मौजूद हैं जो ब्लॉक करते हैं जब कोई 'mergeinfo' तर्क नहीं होता है - और 'mergeinfo' तर्क केवल संस्करण 1.5 के बाद से एसवीएन में डिफ़ॉल्ट होता है। MsysGit के साथ समस्या यह है कि यह एक पुराने एसवीएन संस्करण (1.4.6) के खिलाफ बनाया गया है, ताकि आप इस मामले में सफलतापूर्वक प्रतिबद्ध नहीं हो सकें। लेकिन सिग्विन के गिट के साथ यह संभव है, क्योंकि यह नए एसवीएन संस्करणों के खिलाफ बनाया गया है।


संपादित करें (2 और साल बाद: अक्टूबर 2014)

जोहान्स शिंडेलिन ने अभी समझाया (अक्टूबर 2014) कि msysgit चरणबद्ध है :

अब हमारे पास विंडोज एसडीके के लिए हल्के वजन वाला गिट है - जो अनिवार्य रूप से एक मानक मिनीजीडब्ल्यू / एमएसआई सिस्टम है जो पैकेज मैनेजर mingw-get के माध्यम से प्रबंधित किया जाता है।

हमने "msysGit" नाम के साथ-साथ एक ही नाम के गिटहब संगठन को नामित करने का निर्णय लिया और विंडोज के लिए गिट ( संबंधित गिटहब संगठन के साथ) पर काम किया, और इंस्टॉलर के लिए "विंडोज़ के लिए गिट" नाम का उपयोग किया विंडोज डेवलपर्स के लिए गिट को लक्षित करने वाले विकास पर्यावरण के लिए "एंड-यूजर" और "विंडोज एसडीके के लिए गिट" पर)।

संपादित करें (3 साल बाद: अप्रैल 2012)

MsysGit (अब गिटहब पर ) अगर आप गिट दुनिया में हल्के वजन की तेजी से शुरू करना चाहते हैं तो जाने का तरीका है: संग्रह को अनजिप करें, git-cmd.bat या git-bash.bat और आप कर चुके हैं।
इसकी नवीनतम रिलीज (1.7.10, अप्रैल 2012) में अब यूटीएफ -8 के लिए समर्थन शामिल है , जिसे गिट एक्सक्स्टेंशन में भी शामिल किया गया है । यद्यपि अपने autocrlf को झूठा करने के लिए मत भूलना।

यदि आप वास्तव में अन्य सभी यूनिक्स कमांड को याद कर रहे हैं, तो msysgit के साथ पैकेज नहीं, बस गोवा (विंडोज़ पर जीएनयू) की रिलीज डाउनलोड करें, जिसे " साइगविन के हल्के विकल्प" के नाम से जाना जाता है।
मेरा मतलब है: 130 यूनिक्स कमांड एस ...

सिगविन केवल कुछ मामलों के लिए बैकअप समाधान होना चाहिए, जैसे बड़े गिट भंडारों की स्थानांतरण गति, जैसा कि नीचे दिए गए अनुसार उनके उत्तर में incrementor द्वारा किया गया है।

जून 2012: यदि आप गिटहब के साथ बातचीत करना चाहते हैं, तो अब आपके पास http://windows.github.com है (" विंडोज़ के लिए डिज़ाइनिंग गिटहब " भी देखें)।
यह न केवल आपके लिए एसएसएच कुंजी को कॉन्फ़िगर करेगा (और जेनरहब प्रोफाइल में जेनरेट की गई सार्वजनिक कुंजी जोड़ें), लेकिन यह सभी गिट ऑपरेशंस के लिए भी स्थापित होगा, एक ... MsysGit।

मूल उत्तर (अप्रैल 200 9)

मुझे MsysGit के नवीनतम संस्करण में कोई समस्या नहीं है:
मैं विकल्प 2 का उपयोग करता हूं, जिसका अर्थ है कि मैं केवल पैट पर्यावरण चर में गिट \ bin निर्देशिका जोड़ता हूं, लेकिन कुछ अंतर्निहित विंडोज टूल्स को ओवरराइड किए बिना।

मैं बाहरी उपकरण जैसे Notepad++ और विनमेर्ज (या डिफमेज) को परिभाषित करने में कामयाब रहा

मैंने svn2git सफलतापूर्वक स्क्रिप्ट svn2git क्योंकि, MsysGit1.6.2 + से, इसमें ' git svn ' कमांड शामिल है।

और अंततः मैं MsysGit1.6.2.3 की प्रतीक्षा करता हूं क्योंकि इसमें अंततः ' git filter-branch ' कमांड शामिल होगा ! (फ़िल्टर-शाखा का धीमा संस्करण, लेकिन फिर भी)।

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

तो सब कुछ, मैं सिग्विन परत का उपयोग नहीं करता, और अपने विंडोज-आधारित रिलीज MsysGit में गिट को बहुत अच्छी तरह चलाने में कामयाब रहा।


हाँ। पुराना सवाल नया उत्तर:

हम अब बड़े पैमाने पर तैनाती में लगभग 2 वर्षों के लिए MSYSgit का उपयोग कर रहे हैं। स्थानीय गिट भंडार सर्वर से स्थानान्तरण की गति 5 एमआईबी / एस से कम तक सीमित है। इससे पहले इस मुद्दे की जांच से संकेत मिलता था कि समस्या एमएसवाईएस देवताओं के साथ विंडोज एक्सपी और विंडोज 7 सुरक्षा कमांड प्रॉम्प्ट / बैश खोल से कनेक्शन सीमित थी। यह वास्तव में समस्या नहीं प्रतीत होता है।

मैंने डैरेल मोजिंगो के ब्लॉग पोस्टिंग की खोज की और केवल एक सिगविन इंस्टॉलेशन का उपयोग करके एक बड़े (कई जीआईबी) रेपो के क्लोन का परीक्षण किया। स्थानांतरण गति 30 एमआईबी / एस रेंज में थी। समस्या यह है कि MSYSgit 2007 से एक प्राचीन ओपनएसएसएच बाइनरी का उपयोग करता है।

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





dvcs