क्यों तोड़फोड़, तोड़फोड़ से बेहतर है?


393

मैं कुछ वर्षों से तोड़फोड़ का उपयोग कर रहा हूं और SourceSafe का उपयोग करने के बाद , मैं बस तोड़फोड़ से प्यार करता हूं। TortoiseSVN के साथ संयुक्त , मैं वास्तव में कल्पना नहीं कर सकता कि यह कैसे बेहतर हो सकता है।

फिर भी डेवलपर्स की बढ़ती संख्या यह दावा कर रही है कि तोड़फोड़ की समस्या है और हमें वितरित संस्करण नियंत्रण प्रणालियों की नई नस्ल जैसे कि Git में जाना चाहिए

तोड़फोड़ पर Git कैसे सुधरता है?

जवाबों:


548

तोड़फोड़, तोड़फोड़ से बेहतर नहीं है। लेकिन भी बदतर नहीं है। ये अलग है।

मुख्य अंतर यह है कि यह विकेंद्रीकृत है। कल्पना कीजिए कि आप सड़क पर एक डेवलपर हैं, आप अपने लैपटॉप पर विकसित होते हैं और आप स्रोत नियंत्रण चाहते हैं ताकि आप 3 घंटे पीछे जा सकें।

तोड़फोड़ के साथ, आपको एक समस्या है: SVN रिपॉजिटरी एक ऐसे स्थान पर हो सकती है जहां आप (आपकी कंपनी में, और आपके पास फिलहाल इंटरनेट नहीं है), आप प्रतिबद्ध नहीं हो सकते। यदि आप अपने कोड की एक प्रतिलिपि बनाना चाहते हैं, तो आपको इसे सचमुच कॉपी / पेस्ट करना होगा।

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

यह पहली बार में अच्छा लग रहा है, लेकिन बस इस दृष्टिकोण के लिए जोड़ा जटिलता को ध्यान में रखें।

Git "नई, चमकदार, शांत" चीज़ लगती है। यह किसी भी तरह से खराब नहीं है (एक कारण है कि लिनस ने इसे लिनक्स कर्नेल विकास के लिए लिखा है), लेकिन मुझे लगता है कि बहुत से लोग "डिस्ट्रिब्यूटेड सोर्स कंट्रोल" ट्रेन पर कूदते हैं क्योंकि यह नया है और लिनुस टोरवाल्ड्स द्वारा लिखा गया है, वास्तव में बिना यह जानना / क्यों बेहतर है।

तोड़फोड़ की समस्याएँ हैं, लेकिन Git, Mercurial, CVS, TFS या जो भी है।

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

विकेन्द्रीकृत काम करते समय सबसे पहले, गिट वास्तव में भ्रमित हो सकता है। रिमोट क्या होता है? और प्रारंभिक रिपॉजिटरी को ठीक से कैसे स्थापित करें? शुरुआत में आने वाले दो प्रश्न हैं, विशेष रूप से SVN के सरल "svnadmin create" की तुलना में, Git के "git init" पैरामीटर को ले जा सकते हैं --bare और - sered जो एक केंद्रीकृत सेट करने के लिए "उचित" तरीका लगता है। भंडार। इसके कारण हैं, लेकिन यह जटिलता जोड़ता है। "चेकआउट" कमांड का दस्तावेज़ीकरण लोगों को बदलने पर बहुत भ्रमित करता है - "उचित" तरीका "गिट क्लोन" लगता है, जबकि "गिट चेकआउट" शाखाओं को स्विच करने के लिए लगता है।

जब आप विकेंद्रीकृत होते हैं, तो वास्तव में चमकता है। मेरे पास घर पर एक सर्वर और सड़क पर एक लैपटॉप है, और एसवीएन बस यहां अच्छी तरह से काम नहीं करता है। एसवीएन के साथ, अगर मैं रिपॉजिटरी से जुड़ा नहीं हूं तो स्थानीय स्रोत नियंत्रण नहीं हो सकता है (हां, मुझे एसवीके के बारे में या रेपो की नकल करने के तरीकों के बारे में पता है)। Git के साथ, यह वैसे भी डिफ़ॉल्ट मोड है। हालांकि यह एक अतिरिक्त कमांड है (git कमिट स्थानीय रूप से, जबकि git पुश ओरिजिन मास्टर "मूल" नाम के रिमोट से मास्टर ब्रांच को पुश करता है)।

जैसा कि ऊपर कहा गया है: गिट जटिलता जोड़ता है। रिपॉजिटरी बनाने के दो तरीके, चेकआउट बनाम क्लोन, कमिट बनाम पुश ... आपको यह जानना होगा कि कौन से कमांड स्थानीय स्तर पर काम करते हैं और जो "सर्वर" के साथ काम करते हैं (मैं अभी भी ज्यादातर लोगों को केंद्रीय "मास्टर-रिपॉजिटरी" की तरह मान रहा हूं )।

इसके अलावा, टूलिंग अभी भी अपर्याप्त है, कम से कम विंडोज पर। हां, एक विजुअल स्टूडियो ऐड है, लेकिन मैं अभी भी msysgit के साथ git bash का उपयोग करता हूं।

SVN का यह फायदा है कि यह सीखने के लिए बहुत सरल है: आपकी रिपॉजिटरी है, इसके प्रति सभी परिवर्तन होते हैं, यदि आप जानते हैं कि कैसे बनाएं, कमिट करें और चेकआउट करें और आप जाने के लिए तैयार हैं और बाद में ब्रांचिंग, अपडेट आदि जैसे सामान पिक कर सकते हैं। पर।

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

यह भी बताता है कि यह इंटरनेट पर इतनी चर्चा क्यों हासिल करता है, क्योंकि गेट ओपन सोर्स प्रोजेक्ट्स के लिए पूरी तरह से अनुकूल है: बस इसे कांटा, अपने खुद के फोर्क में अपने बदलाव करें, और फिर मूल प्रोजेक्ट अनुचर से अपने परिवर्तनों को खींचने के लिए कहें। गिट के साथ, यह सिर्फ काम करता है। वास्तव में, इसे गितुब पर आज़माएं, यह जादू है।

मैं Git-SVN ब्रिज भी देख रहा हूं: सेंट्रल रिपॉजिटरी एक सबवर्सन रेपो है, लेकिन डेवलपर्स स्थानीय रूप से Git और ब्रिज के साथ काम करते हैं और फिर SVN में अपने बदलावों को आगे बढ़ाते हैं।

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


70
एक फेरारी एक हुंडई से बेहतर नहीं है। लेकिन भी बदतर नहीं है। ये अलग है। (क्या? मुझे इस तरह घूरो मत ... क्या मैंने कुछ गलत कहा?)
FDCastel

219
नहीं, आपने नहीं किया। एक फेरारी अव्यावहारिक, महंगा, प्यासा है, और आपको ए से बी में बेहतर नहीं मिलेगा यदि आप न्यूयॉर्क या पेरिस जैसे शहर में रहते हैं - मैं कई जगहों के लिए हुंडई पसंद करूंगा, क्योंकि एक खरोंच बहुत कम गंभीर है। लेकिन हर अपने ही करने के लिए - एक फेरारी (बहुत कम) और साथ ही फायदे हैं ...
माइकल Stum

50
वितरण केवल तोड़फोड़ और गिट के बीच का अंतर नहीं है। जब तक आप कई रिपॉजिटरी का उपयोग नहीं करते हैं, यह किसी भी जटिलता को नहीं जोड़ता है। तोड़फोड़ के बजाय Git का उपयोग करने के कई फायदे हैं , लेकिन केवल कुछ (ज्यादातर महत्वहीन) नुकसान हैं। गिट का उपयोग किया जाता है क्योंकि यह अच्छा है, चमकदार नहीं है।
sebnow

6
जीआईटी के साथ मेरे अनुभव वास्तव में "जीवन बदलते रहस्योद्घाटन" नहीं हैं। जब यह काम करता है, तो मैं इसे एक महान उपकरण मानता हूं, जब यह तब नहीं होता है जब यह अपवित्र लगता है। मैं प्रश्न १० too२ too२ and२ की तरह बहुत ज्यादा प्रभावित नहीं था, और फिर भी यह स्पष्ट रूप से एक RTFM समस्या है: मैं git (और किसी भी अन्य वितरित vcs) को केंद्रीकृत लोगों की तुलना में अधिक जटिल मानता हूं, और मैं इसे केंद्रीय वातावरण में उपयोग करने पर विचार करूंगा। । लेकिन फिर, मैं मुख्य रूप से एक विंडोज डेवलपर हूं, और एसवीएन की तुलना में टूल अभी भी विंडोज पर अपरिपक्व हैं।
माइकल स्टम

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

145

गिट के साथ, आप व्यावहारिक रूप से ऑफ़लाइन कुछ भी कर सकते हैं, क्योंकि हर किसी का अपना भंडार है।

शाखाओं को बनाना और शाखाओं के बीच विलय करना वास्तव में आसान है।

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

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

Git लिनक्स कर्नेल डेवलपर्स के लिए काम करता है। इसका मतलब है कि यह वास्तव में तेज़ है (यह होना है), और हजारों योगदानकर्ताओं को तराजू। Git भी कम स्थान (मोज़िला भंडार के लिए 30 गुना कम स्थान तक) का उपयोग करता है।

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

अंत में, GitHub , आपके Git रिपॉजिटरी की मेजबानी के लिए एक शानदार साइट है।

Git की कमियां:

  • यह सीखना बहुत कठिन है, क्योंकि Git में अधिक अवधारणाएँ और अधिक आज्ञाएँ हैं।
  • संशोधन में तोड़फोड़ की तरह संस्करण संख्या नहीं है
  • कई Git कमांड्स क्रिप्टिक हैं, और एरर मैसेज बहुत उपयोगकर्ता-अनफ्रेंडली हैं
  • इसमें एक अच्छे GUI का अभाव है (जैसे कि महान कछुआ SVN )

31
हालांकि Git के सभी सीखना बहुत कठिन होगा, मूल बातें लगभग समान हैं। सीखने की गुंजाइश वास्तव में तब तक नहीं होती है जब तक कि आप अधिक उन्नत सामान में नहीं आते हैं, जो कि एसवीएन वैसे भी सक्षम नहीं है।
sebnow

10
मेरे लिए +1। मुझे लगता है कि बहुत सारे डेवलपर्स भूल जाते हैं कि git को TortoiseSVN जैसी किसी चीज़ की कमी है, और केवल डेवलपर्स ही संस्करण नियंत्रण का उपयोग नहीं करते हैं। मैं समझाने के लिए सोच रहा था (और समर्थन) SVN का उपयोग कर हमारे गैर डेवलपर्स के लिए संस्करण नियंत्रण वितरित! TortoiseSVN!
०६६।

7
एक और नुकसान - आपके पास रिपॉजिटरी की पूरी कॉपी होनी चाहिए, आप
पार्टिकल्स

3
मुझे गिट से प्यार है, लेकिन मुझे दैनिक उपयोग के बारे में छह महीने लग गए, वास्तव में इसे प्रभावी ढंग से उपयोग करने के लिए। कहा जा रहा है, मैं msysgit से git खोल (कमांड प्रॉम्प्ट) का संयोजन, msysgit से git gui और gitk और TortoiseGit का उपयोग करता हूं। मुझे लगता है कि TortoiseGit महान है, लेकिन मुझे समझ में नहीं आता है कि अधिक लोग इसका उपयोग क्यों नहीं करते हैं। मुझे पता है कि विभिन्न कारणों से एमएसआईसिट्ज के अनुरक्षक लथ टोर्टोइसगिट, उनमें से कुछ वैचारिक हैं, और इसके साथ कुछ करना हो सकता है। TortoiseGit एक अच्छी तरह से रखा हुआ रहस्य है!
जिम राडेन

2
मैं सहमत हूँ। मैं एसवीएन और जीआईटी दोनों का उपयोग करता हूं (लगभग 6 महीने से)। मैं ईमानदारी से बहुत प्यार करता हूँ जितना मैंने कभी SVN से किया था। बस इसे सीखने में समय लगता है। मेरे लिए सबसे बड़ी छलांग (जिस क्षण मैंने प्रकाश को देखा: पी) था जब मुझे आखिरकार एहसास हुआ कि मुझे एसवीएन के काम करने के तरीके को जीआईटी का उपयोग करने से रोकने की कोशिश करनी थी। फिर सब कुछ ठीक हो गया;)
ब्लिज़

110

अन्य उत्तरों ने गिट की मुख्य विशेषताओं (जो महान हैं) को समझाने का अच्छा काम किया है। लेकिन वहाँ भी बहुत कम तरीके हैं कि Git बेहतर व्यवहार करता है और मेरे जीवन को और अधिक सुरक्षित रखने में मदद करता है। यहाँ कुछ छोटी चीजें हैं:

  1. Git में एक 'क्लीन' कमांड है। एसवीएन को इस कमांड की सख्त आवश्यकता है, यह देखते हुए कि यह आपकी डिस्क पर कितनी बार अतिरिक्त फ़ाइलों को डंप करेगा।
  2. Git में 'बाइसेक्ट' कमांड है। यह अच्छा है।
  3. SVN प्रत्येक एकल फ़ोल्डर में .svn निर्देशिका बनाता है (Git केवल एक .IT निर्देशिका बनाता है )। आपके द्वारा लिखी जाने वाली प्रत्येक स्क्रिप्ट और आपके द्वारा किया जाने वाला प्रत्येक grep, इन .svn निर्देशिकाओं को अनदेखा करने के लिए लिखे जाने की आवश्यकता होगी। आपको अपनी फ़ाइलों की एक सांची प्रतिलिपि प्राप्त करने के लिए भी संपूर्ण कमांड ("svn Export") की आवश्यकता है।
  4. एसवीएन में, प्रत्येक फ़ाइल और फ़ोल्डर एक अलग संशोधन या शाखा से आ सकते हैं। सबसे पहले, यह आजादी अच्छा लगता है। लेकिन वास्तव में इसका मतलब यह है कि आपके स्थानीय चेकआउट के पूरी तरह से खराब होने के लिए एक लाख अलग-अलग तरीके हैं। (उदाहरण के लिए, यदि "svn स्विच" आधे रास्ते में विफल रहता है, या यदि आप गलत कमांड दर्ज करते हैं)। और सबसे खराब हिस्सा यह है: यदि आप कभी ऐसी स्थिति में आते हैं, जहां आपकी कुछ फाइलें एक स्थान से आ रही हैं, और उनमें से कुछ अन्य, "svn स्थिति" आपको बताएगी कि सब कुछ सामान्य है। आपको प्रत्येक फ़ाइल / निर्देशिका पर "svn जानकारी" करने की आवश्यकता होगी, ताकि यह पता चल सके कि कितनी अजीब चीजें हैं। यदि "स्थिति" आपको बताती है कि चीजें सामान्य हैं, तो आप भरोसा कर सकते हैं कि चीजें वास्तव में सामान्य हैं।
  5. आपको जब भी कुछ हिलाना या हटाना हो तो आपको SVN बताना होगा। Git अभी इसका पता लगाएगा।
  6. जीआईटी में इग्नोर शब्दार्थ को आसान बनाते हैं। यदि आप एक पैटर्न (जैसे * .pyc) को अनदेखा करते हैं, तो इसे सभी उपनिर्देशिकाओं के लिए अनदेखा कर दिया जाएगा । (लेकिन अगर आप वास्तव में सिर्फ एक निर्देशिका के लिए कुछ अनदेखा करना चाहते हैं, तो आप कर सकते हैं)। एसवीएन के साथ, ऐसा लगता है कि सभी उपनिर्देशिकाओं में एक पैटर्न को अनदेखा करने का कोई आसान तरीका नहीं है।
  7. फ़ाइलों को अनदेखा करने वाला एक अन्य आइटम। Git के लिए "निजी" सेटिंग्स को अनदेखा करना संभव है (फ़ाइल का उपयोग करें .it / जानकारी / बहिष्कृत), जो किसी और को प्रभावित नहीं करेगा।

2
विज्ञापन। 7. आधुनिक git के साथ आप ~- .ignignore (कोर मैन-कॉन्फिगर देखें) में core.excludesFile वैरिएबल का उपयोग करके प्रति-उपयोगकर्ता "प्राइवेट" को अनदेखा कर सकते हैं।
जकूब नारबस्की

3
# 5 पुन: जबकि यह सामान्य रूप से सच है, कभी-कभी Git इस पर शिकंजा कसता है। कम से कम तोड़फोड़ के साथ, स्थानांतरित करने या हटाने के कारण समस्याएं लगभग हमेशा PEBKAC होती हैं। हालांकि स्वचालित चाल / ट्रैकिंग हटाना अच्छा है, मैं अभी भी कम से कम स्पष्ट रूप से यह बताने की क्षमता की सराहना करता हूं कि मैं रिपॉजिटरी में फ़ाइलों के लिए क्या कर रहा हूं, भले ही मुझे इसका उपयोग करने की आवश्यकता न हो।
क्रिस चारबारुक

8
@ क्रिस: आप इसे स्पष्ट रूप से कर सकते हैं: git mvऔर git rm
आर। मार्टिनो फर्नांडिस

2
मैं प्रति कॉपी काम करने वाली एकल .svn निर्देशिका का विकल्प भी देखना चाहूंगा, लेकिन रिकॉर्ड के लिए: # 3 के लिए: अधिकांश उपकरण (डिफ़ॉल्ट रूप से) .svn निर्देशिकाओं को अनदेखा करेंगे। # 6 के लिए: आप पुनरावर्ती रूप से गुण सेट कर सकते हैं।
si618

6
3: "एक एकल। Svn" निर्देशिका एसवीएन 1.7 के साथ यहां होगी जब डब्ल्यूसी-एनजी को लागू किया जाएगा। 1: SVN की सफाई के लिए आप अपने WC के शीर्ष पर 'निर्यात' करें। 5: यह इतना आसान नहीं है, अगर आप एक फ़ाइल का नाम बदलते हैं तो इसे पहचानते हैं और इतिहास रखते हैं, या इसे एक ऐड के रूप में मानते हैं और निर्देशिका में हटाते हैं। 6/7: svn में प्रति ग्राहक क्लाइंट सेटिंग वैश्विक-उपेक्षा है।
gbjbaanb

56

" क्यों Git X से बेहतर है " Git बनाम अन्य SCM के विभिन्न पेशेवरों और विपक्षों की रूपरेखा तैयार करता है।

संक्षेप में:

  • Git फ़ाइलों के बजाय सामग्री को ट्रैक करता है
  • शाखाएं हल्की हैं और विलय आसान है , और मेरा मतलब है कि वास्तव में आसान है
  • यह वितरित किया जाता है, मूल रूप से प्रत्येक भंडार एक शाखा है। मेरी राय में, तोड़फोड़ की तुलना में समवर्ती और सहयोगात्मक रूप से विकसित करना बहुत आसान है। यह ऑफलाइन विकास को भी संभव बनाता है।
  • यह किसी भी वर्कफ़्लो को लागू नहीं करता है , जैसा कि ऊपर लिंक की गई वेबसाइट पर देखा गया है , Git के साथ कई वर्कफ़्लो संभव हैं। एक तोड़फोड़-शैली वर्कफ़्लो आसानी से नकल की जाती है।
  • सबटवर्सन रिपॉजिटरी की तुलना में फ़ाइल आकार में गिट रिपॉजिटरी बहुत छोटी हैं । दर्जनों "विरोधाभासी" रिपॉजिटरी (नोट तोड़फोड़ 1.7 और उच्चतर अब Git जैसी एकल निर्देशिका का उपयोग करता है ) के विपरीत केवल एक ".गित" निर्देशिका है। "
  • मचान क्षेत्र भयानक है, यह आप आंशिक परिवर्तन हो परिवर्तनों को आप के लिए प्रतिबद्ध होगा, देखते हैं और विभिन्न अन्य सामान करने के लिए अनुमति देता है।
  • जब आप "अराजक" विकास करते हैं, तो स्टैशिंग अमूल्य होता है, या बस एक बग को ठीक करना चाहते हैं, जबकि आप अभी भी कुछ और (एक अलग शाखा पर) काम कर रहे हैं।
  • आप इतिहास को फिर से लिख सकते हैं , जो पैच सेट तैयार करने और आपकी गलतियों को ठीक करने के लिए बहुत अच्छा है ( इससे पहले कि आप प्रकाशित करें)
  • … और भी बहुत कुछ।

कुछ नुकसान हैं:

  • इसके लिए अभी तक कई अच्छे GUI नहीं हैं। यह नया है और तोड़फोड़ बहुत लंबे समय से चारों ओर है, इसलिए यह स्वाभाविक है क्योंकि विकास में कुछ इंटरफेस हैं। कुछ अच्छे शामिल TortoiseGit और मैक के लिए GitHub
  • वर्तमान में रिपॉजिटरी के आंशिक चेकआउट / क्लोन संभव नहीं हैं (मैंने पढ़ा है कि यह विकास में है)। हालाँकि, इसमें सबमॉड्यूल सपोर्ट है। Git 1.7+ विरल चेकआउट का समर्थन करता है
  • यह सीखना कठिन हो सकता है, भले ही मुझे यह मामला नहीं लगा (लगभग एक साल पहले)। गिट ने हाल ही में अपने इंटरफेस में सुधार किया है और यह काफी उपयोगकर्ता के अनुकूल है।

सबसे सरल उपयोग में, तोड़फोड़ और गिट बहुत अधिक समान हैं। इसमें बहुत अंतर नहीं है:

svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit -m "foo"

तथा

git clone git@github.com:foo/bar.git
cd bar
# edit
git commit -a -m "foo"
git push

जहां गिट वास्तव में चमकते हैं और अन्य लोगों के साथ काम कर रहे हैं।


8
आप कहते हैं कि GIT फ़ाइलों के बजाय सामग्री को ट्रैक करता है। मुझे पता चला कि एसवीएन भी ऐसा करता है: मैंने सिर्फ एक फाइल में बदलाव किया है, और इसे बचाया है। SVN ने फ़ाइल को लाल (बदला हुआ) दिखाया। फिर मैंने संपादक में पूर्ववत किया और इसे फिर से सहेजा। एसवीएन ने फ़ाइल को बदल दिया गया था (भले ही नया बदल दिया हो) भले ही स्थिति हरे रंग में बदल गई हो लेकिन एसवीएन ने माना कि सामग्री मूल से नहीं बदली गई थी।
खौफ

svn ट्रैक परिवर्तन फ़ाइलों को पार करता है?
सीन ओसेवा

12
@awe, जिसे फ़ाइल ट्रैकिंग कहा जाता है। फ़ाइल का नाम बदलने की कोशिश करें, या इसे मैन्युअल रूप से कहीं और ले जाएं [एक ही सामग्री, नई फ़ाइल (नए पथ / नाम के कारण)]: क्या SVN को पता चलेगा कि यह एक ही फ़ाइल है और पिछले अनगिनत संशोधन जो आपने इसे बनाए हैं? नहीं मुझे नहीं लगता।
फिलिप डुपनोविक

TortoiseGit - code.google.com/p/tortoisegit | जीआईटी 1.7 विरल चेकआउट - कर्नेल.org
Zaz

54

Google टेक टॉक: लिनस टॉर्वाल्ड्स गिट पर

http://www.youtube.com/watch?v=4XpnKHJAok8

Git Wiki का तुलनात्मक पृष्ठ

http://git.or.cz/gitwiki/GitSvnComparsion


12
लिनस की बात देखने में मजेदार है। वह तोड़फोड़ और सीवीएस जैसे केंद्रीकृत संस्करण नियंत्रण प्रणालियों को बेरहमी से चीरता है। हालाँकि, रैंडल श्वार्ट्ज ' youtube.com/watch?v=8dhZ9BXQgc4 अधिक रचनात्मक, अधिक जानकारीपूर्ण और अधिक ठोस है।
bendin

2
यह एक बहुत अच्छा है। इसकी एक कमिट कमिटर्स में से एक है और वह कई एडवांस फीचर्स बताते हैं जैसे बड़े कमेंट्स को छोटे में विभाजित करना। youtube.com/watch?v=j45cs5_nY2k
schoetbi

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

@ मेट्रिक्सफॉरॉग: मुझे लगता है कि इस मामले में, "विकेंद्रीकृत" "केंद्रीकृत" के विपरीत नहीं है, लेकिन वास्तव में एक सुपरसेट है। यह "मोबाइल" और "मोबाइल" की तरह है - सिर्फ इसलिए कि कुछ "मोबाइल" नहीं है, यह मुझे बर्दाश्त नहीं कर सकता।
तिखन जेल्विस

26

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

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

एक वितरित संस्करण नियंत्रण के साथ, आपके पास स्नैपशॉट नहीं है, बल्कि संपूर्ण कोडबेस है। एक 3 महीने पुराने संस्करण के साथ एक अलग करना चाहते हैं? कोई बात नहीं, 3 महीने पुराना संस्करण अभी भी आपके कंप्यूटर पर है। इसका मतलब यह नहीं है कि चीजें तेजी से बढ़ रही हैं, लेकिन यदि आप अपने केंद्रीय सर्वर से डिस्कनेक्ट हो गए हैं, तो आप अभी भी आपके द्वारा उपयोग किए जाने वाले कई ऑपरेशन कर सकते हैं। दूसरे शब्दों में, आपके पास किसी दिए गए संशोधन का स्नैपशॉट नहीं है, बल्कि संपूर्ण कोडबेस है।

आपको लगता है कि Git आपके हार्डड्राइव पर जगह का एक गुच्छा लेगा, लेकिन मैंने जो कुछ बेंचमार्क देखा है, उसमें वास्तव में कम लगता है। मुझसे मत पूछो कैसे। मेरा मतलब है, यह लिनुस द्वारा बनाया गया था, वह एक या दो फाइल सिस्टम के बारे में जानता है जो मुझे लगता है।


1
यही कारण है कि Git मात्र चेकआउट के लिए सबवर्सन की तुलना में पूर्ण रिपॉजिटरी के लिए कम डिस्क स्थान ले सकता है, यह है कि तोड़फोड़ 'svn diff' (पिछले संस्करण के साथ तुलना) काम करने के लिए "प्राचीन प्रतिलिपि" संग्रहीत करता है ... और यह कि gititository संकुचित है (और डेल्टा किया गया है) )।
जकुब नारबस्की 14

3
मुझे आश्चर्य नहीं है कि "वर्किंग फोल्डर" (यानी, repos) svn वर्किंग कॉपियों की तुलना में छोटे हैं, क्योंकि svn repos svn वर्किंग कॉपियों से भी छोटे हैं।
आर। मार्टिनो फर्नांडीस

22

DVCS के बारे में मुझे जो मुख्य बातें पसंद हैं, वे हैं:

  1. आप टूटी हुई चीजें कर सकते हैं। इससे कोई फर्क नहीं पड़ता क्योंकि अन्य लोग आपको प्रकाशित होने तक नहीं देखेंगे। प्रकाशित समय प्रतिबद्ध समय का अलग है।
  2. इस वजह से आप अधिक बार कर सकते हैं।
  3. आप पूरी कार्यपद्धति का विलय कर सकते हैं। इस कार्य की अपनी शाखा होगी। इस शाखा के सभी आवागमन इस कार्य से संबंधित होंगे। आप इसे CVCS के साथ कर सकते हैं लेकिन DVCS इसके डिफ़ॉल्ट के साथ।
  4. आप अपना इतिहास खोज सकते हैं (जब कोई फ़ंक्शन बदला हो)
  5. आप एक पुल को पूर्ववत कर सकते हैं यदि कोई मुख्य भंडार को पेंच करता है, तो आपको त्रुटियों को ठीक करने की आवश्यकता नहीं है। बस मर्ज को साफ़ करें।
  6. जब आपको किसी भी निर्देशिका में स्रोत नियंत्रण की आवश्यकता होती है: तो init। और आप कर सकते हैं, पूर्ववत परिवर्तन, आदि ...
  7. यह तेज़ है (विंडोज पर भी)

अपेक्षाकृत बड़ी परियोजना का मुख्य कारण बिंदु 3 द्वारा निर्मित सुधार संचार है। अन्य अच्छे बोनस हैं।


मुझे लगता है कि बिंदु # 1 कहने का इरादा है "अन्य लोग उन्हें तब तक नहीं देखेंगे जब तक आप प्रकाशित नहीं करेंगे " (या "धक्का")।
१२:५२ पर कटक

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

15

मजेदार बात यह है: मैं प्रोजेक्ट्स को तोड़फोड़ के प्रस्ताव में होस्ट करता हूं, लेकिन उन्हें Git Clone कमांड के जरिए एक्सेस करता हूं।

कृपया Google कोड प्रोजेक्ट पर विकास के साथ पढ़ें

यद्यपि Google कोड मूल रूप से तोड़फोड़ बोलता है, आप आसानी से विकास के दौरान Git का उपयोग कर सकते हैं। "Git svn" के लिए खोज करने से पता चलता है कि यह प्रथा व्यापक है, और हम आपको इसके साथ प्रयोग करने के लिए प्रोत्साहित करते हैं।

Svn रिपोजिटरी पर Git का उपयोग करने से मुझे लाभ मिलता है:

  1. मैं कई मशीनों पर वितरित कर सकता हूं , उनसे और उनसे आने और खींचने का काम कर सकता हूं
  2. मेरे पास दूसरों की जाँच के लिए एक केंद्रीय backup/public svn भंडार है
  3. और वे अपने स्वयं के लिए गिट का उपयोग करने के लिए स्वतंत्र हैं

3
यह पुराना है, Google कोड मर्क्यूरियल करता है इसलिए अब इस हैक की कोई आवश्यकता नहीं है
सैम सैफ्रन

@ जब तक आप गिट और / या पसंद नापसंद पसंद नहीं करते।
MatrixFrog

11

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

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

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

डिस्क्लेमर: मुझे जल्दी ही (लगभग v0.29 के आसपास) सबवर्सन में दिलचस्पी हो गई, इसलिए जाहिर है कि मैं पक्षपाती हूं, लेकिन मैंने उस समय से जिन कंपनियों के लिए काम किया है, वे मेरे उत्साह से लाभान्वित हो रहे हैं क्योंकि मैंने इसके उपयोग को प्रोत्साहित और समर्थन किया है। मुझे संदेह है कि अधिकांश सॉफ्टवेयर कंपनियों के साथ ऐसा कैसे होता है। इतने सारे प्रोग्रामर के साथ गिट बैंडवागन पर कूदते हुए, मुझे आश्चर्य है कि स्रोत कोड के बाहर संस्करण नियंत्रण का उपयोग करने के लाभों के बारे में कितनी कंपनियां याद करने वाली हैं? यहां तक ​​कि अगर आपके पास अलग-अलग टीमों के लिए अलग-अलग सिस्टम हैं, तो आप रखरखाव, हार्डवेयर और प्रशिक्षण आवश्यकताओं को बढ़ाते हुए, ट्रैकिंग (एकीकरण) जारी करने के कुछ लाभों को याद कर रहे हैं।


IMHO, यह SVN के पक्ष में एकमात्र वैध कारण है। संक्षेप में, एक गैर-प्रोग्रामर को समझाना आसान है, अर्थात्, कोई है जो इसे रैखिक तरीके से उपयोग करने और जटिल (= वास्तविक) वीसी परिदृश्यों से बचने की उम्मीद करता है: संघर्ष, 3 तरह से विलय, शाखाएं .. मेरा मतलब है, आप। कभी नहीं VCS वैसे भी कोई PowerPoint प्रस्तुति फ़ाइल विलय .. बताना चाहते हैं
Inger

2
"अधिकांश प्रोग्रामर अलगाव में काम नहीं करते हैं" ऐसा लगता है कि एकाउंटेंट / मार्केटिंग के लोगों को उसी रेपो का उपयोग करना होगा जहां स्रोत कोड रखा गया है। मुझे इसके लाभ नहीं दिख रहे हैं; मेरी कुछ पूर्व कंपनियां उस तरह की चीजों पर मानकीकरण करना चाहती थीं, लेकिन यह अनिवार्य रूप से विफल रहा। मुझे लगता है कि प्रबंधक के लिए सरलीकृत दृष्टिकोण बहुत अच्छा हो सकता है, लेकिन प्रोग्रामर टीमों के लिए एक ओवरसिम्प्लीफिकेशन - जिससे कि एक बुरा समझौता हो जाता है।
Inger

सॉफ़्टवेयर के साथ जाने वाले दस्तावेज़ों के लिए, आप सही हैं - उन्हें एक साथ संस्करणित किया जाना चाहिए। मैंने पाया कि लोगों की तुलना में बहुत कम लोग शुरू में सोचते हैं (हमने स्रोत रेपो से एक विशाल पेड़ डॉक्स को बाहर फेंक दिया)। इसके अलावा, तकनीकी लेखकों के वर्कफ़्लो को सरल बनाने के लिए आप बहुत कुछ कर सकते हैं, आदि, यह एक मुद्दा होना चाहिए (यह नहीं होना चाहिए)।
’११ को ११:३१

2
@inger मुझे नहीं लगता कि आप कह सकते हैं "यह एकमात्र वैध कारण है", तोड़फोड़ के लिए AFAIK टूलींग समर्थन Git से बहुत बेहतर है, जैसे TortoiseSVN और ग्रहण की तरह विज़ुअल स्टूडियो और जावा आईडीई के साथ एकीकरण। यह आपके लिए एक मुद्दा नहीं हो सकता है, लेकिन यह निश्चित रूप से हमारे लिए है। मैंने अपने उत्तर में इसका उल्लेख नहीं किया क्योंकि यह एक अलग मुद्दा है।
si618

1
@ केयो, हाँ यह सच है गैर-प्रोग्रामर को सबवर्सन लेने में समय लगेगा, लेकिन मुझे लगता है कि वे गिट या एचजी के साथ अधिक समय लेंगे। विकी के महान हैं अगर वे बनाए रखा जाता है, लेकिन मेरे अनुभव में डेवलपर्स को दस्तावेजों को बनाए रखने की अधिक संभावना है जो स्रोत कोड से संबंधित हैं यदि वे उस स्रोत कोड के करीब हैं। मैं इस बात से सहमत हूं कि इस श्रेणी में फिट होने वाले कई दस्तावेज नहीं हैं, लेकिन वे निश्चित रूप से मौजूद हैं। यह दिलचस्प है कि आप कहते हैं कि git / Hg नौकरी के लिए सबसे अच्छा साधन है, यह एक कंबल कथन है जो संभवतः सभी परिस्थितियों के लिए सही नहीं है, क्या git और Hg में SVN के रूप में अच्छा एकीकरण है?
si618

9

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


लेकिन अब, कुछ वर्षों के लिए बड़े पैमाने पर गिट का उपयोग करने के बाद, मुझे अपने आप से असहमत होने की आवश्यकता है: गिट सबमिशन से कहीं बेहतर है। कम से कम एक बार जब आप Git के अनफ़िल्टर्ड सिंटेक्स पर आते हैं।
neu242

8

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

बेशक, SubVersion में कछुआ है, जो [आमतौर पर] बहुत अच्छा है।


5
.svn
डायर

8

डेविड रिचर्ड्स तोड़फोड़ / GIT पर WANdisco ब्लॉग

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

हमने जो समस्या देखी वह यह थी कि गिवर्न्स तोड़फोड़ पर (सस्ते) शॉट लगा रहे थे। "तोड़फोड़ जैसे ट्वीट्स [धीमे / भद्दे / प्रतिबंधात्मक / अच्छी तरह से गंध नहीं करते / मुझे मजाकिया रूप में देखते हैं] और अब मेरे पास जीआईटी और [मेरे जीवन में सब कुछ काम करता है / मेरी पत्नी गर्भवती हुई / मुझे एक प्रेमिका मिली 30 साल की कोशिश / मैं लाठी मेज पर चलने में छह बार जीता]। आपको चित्र मिल जाएगा।


1
ध्यान दें कि डेविड रिचर्ड्स निष्पक्ष हो सकते हैं: वह जो उत्पाद बनाता है वह सबवर्सन (या तोड़फोड़ विचारों पर) पर आधारित होता है, इसलिए निश्चित रूप से वह तोड़फोड़ और विरोधी-विरोधी होगा।
जकुब नारबस्की

2
विडंबना यह है कि जीआईटी विशेष रूप से बनाया गया था क्योंकि सॉफ्टवेयर इंजीनियरिंग द्वीपों पर नहीं होता है। यह उद्धरण नैतिक है।
बेन कॉलिन्स

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

कट्टरपंथियों के रूप में svn detractors को चित्रित करके, डेविड मौलिक मुद्दे को साइड-स्टेप कर रहा है: तोड़फोड़ वास्तुकला एक मृत-अंत है। ऐसा नहीं है कि गिट एंड-ऑल-बी-वीसीएस है, यह सुनिश्चित करने के लिए अपने मौसा हैं, लेकिन गिट, मर्क्यूरियल, डार्क्स और कई अन्य वीसीएस सभी में मूल रूप से अधिक सुरुचिपूर्ण रिपॉजिटरी मॉडल हैं। तोड़फोड़ कभी विलय कार्य नहीं करेगा क्योंकि निर्देशिका == शाखा मॉडल वास्तविक प्रगति को असंभव बनाता है। डेविड जैसी कंपनियां अधिक से अधिक लिपस्टिक को एक सुअर पर रख सकती हैं, लेकिन svn अनिवार्य रूप से कला की स्थिति के आगे और आगे गिर जाएगी।
GTD

7

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


6

यह सब कुछ करने के लिए आवश्यक उपयोग / चरणों की आसानी के बारे में है।

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

यदि यह सिर्फ 2 लोग थे, तो मैं कहूंगा कि git भी आसान है, क्योंकि आप बस प्रत्येक अभिभावक से धक्का और खींच सकते हैं।

एक बार जब आप उस से परे हो जाते हैं, तो मैं तोड़फोड़ के लिए जाऊंगा, क्योंकि उस समय आपको एक 'समर्पित' सर्वर या लोकेशन सेट करना होगा।

आप इसे एसवीएन के साथ ही गिट के साथ भी कर सकते हैं, लेकिन केंद्रीय सर्वर के साथ सिंक करने के लिए अतिरिक्त कदम करने की आवश्यकता से जीआईटी के लाभ को प्राप्त होता है। SVN में आप बस कमिट करें। Git में आपको कमिट करना है, फिर git पुश करना है। अतिरिक्त कदम बस कष्टप्रद हो जाता है क्योंकि आप इसे बहुत अधिक करते हैं।

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


11
Git में प्रकाशन से कमिटिंग का अलगाव नुकसान के बजाय IMHO लाभ है।
जकूब नारबस्की 14

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

"प्रयोग के लिए विषय शाखा" तर्क अक्सर गिट के पक्ष में रखा जाता है, लेकिन ईमानदारी से, मैंने वास्तव में किसी को वास्तव में तोड़फोड़ या किसी अन्य गैर-डीवीसीएस प्रणाली में ऐसा करते नहीं देखा है। शायद यह एक बड़ी बात है और हम सब गायब हैं, लेकिन मैंने जो देखा है उसमें 99% डेवलपर्स (खुद शामिल) विषय शाखाओं के बारे में परवाह नहीं करते हैं क्योंकि वे कभी भी उनका उपयोग नहीं करते हैं! - आपको कभी भी याद नहीं होगा कि आपने क्या कभी :-) मुझे लगता है कि अगर डीवीसीएस लोग "विषय शाखाओं" को एक विशेषता के रूप में आगे रखने जा रहे हैं, तो उन्हें पहले सभी को यह समझाना होगा कि ऐसी चीजें वास्तव में उपयोगी हैं।
ओरियन एडवर्ड्स

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

6

Easy Git में Git और SVN के वास्तविक उपयोग की तुलना में एक अच्छा पृष्ठ है जो आपको यह अनुमान देगा कि SVN की तुलना में Git क्या चीजें कर सकता है (या अधिक आसानी से कर सकता है)। (तकनीकी रूप से, यह ईज़ी गिट पर आधारित है, जो गिट के शीर्ष पर एक हल्का आवरण है।)


5

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

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

यह सब निश्चित रूप से मानव प्रक्रियाओं के साथ संबोधित किया जा सकता है; DVCS ने बस कुछ नया किया है जो कि कुछ नई सुविधाएं प्रदान करने के लिए केंद्रीकृत संस्करण नियंत्रण द्वारा तय किया गया था।


1
वास्तव में यदि आप लिनक्स कर्नेल या गिट प्रोजेक्ट को प्रबंधित करते हैं, तो आप देखते हैं कि आप देखेंगे कि 'सिंगल मेंटेनर' (या मेंटेनर + लेफ्टिनेंट) वर्कफ़्लो के लिए Git बहुत अच्छा है, जिसमें कंसोन्स रिपॉजिटरी द्वारा एक सेंट्रल है। और एक अनुचर के रूप में किसी और को अस्थायी रूप से स्विच करना आसान बनाता है।
जकूब नारबस्की

5

मुझे Git पसंद है क्योंकि यह वास्तव में एक माध्यम से बड़ी टीम के लिए डेवलपर को संचार डेवलपर की मदद करता है। एक वितरित संस्करण नियंत्रण प्रणाली के रूप में, अपने पुश / पुल सिस्टम के माध्यम से, यह डेवलपर्स को एक स्रोत कोड इको-सिस्टम बनाने में मदद करता है जो किसी एकल प्रोजेक्ट पर काम करने वाले डेवलपर्स के एक बड़े पूल का प्रबंधन करने में मदद करता है।

उदाहरण के लिए, आप 5 डेवलपर्स पर भरोसा करते हैं और केवल उनके रिपॉजिटरी से कोड खींचते हैं। उन डेवलपर्स में से प्रत्येक का अपना ट्रस्ट नेटवर्क है जहां से वे कोड खींचते हैं। इस प्रकार विकास डेवलपर्स के उस भरोसेमंद कपड़े पर आधारित होता है जहां कोड जिम्मेदारी विकास समुदाय के बीच साझा की जाती है।

निश्चित रूप से अन्य लाभ हैं जो यहां अन्य उत्तरों में उल्लिखित हैं।


4

कुछ उत्तरों ने इन पर ध्यान दिया है, लेकिन मैं 2 बिंदु स्पष्ट करना चाहता हूं:

1) चयनात्मक करने की क्षमता कमिट करती है (उदाहरण के लिए, git add --patch )। यदि आपकी वर्किंग डायरेक्टरी में कई बदलाव होते हैं जो एक ही तार्किक परिवर्तन का हिस्सा नहीं हैं, तो Git को ऐसा कमिटमेंट करना बहुत आसान हो जाता है जिसमें केवल बदलाव का एक हिस्सा शामिल होता है। तोड़फोड़ के साथ, यह मुश्किल है।

2) परिवर्तन को सार्वजनिक किए बिना प्रतिबद्ध करने की क्षमता। तोड़फोड़ में, कोई भी प्रतिबद्धता तुरंत सार्वजनिक होती है, और इस तरह अपरिवर्तनीय होती है। यह डेवलपर की क्षमता को "जल्दी प्रतिबद्ध, अक्सर प्रतिबद्ध" करने की क्षमता को सीमित करता है।

Git सिर्फ VCS से अधिक है; यह भी पैच विकसित करने के लिए एक उपकरण है। तोड़फोड़ केवल एक वीसीएस है।


4
1) यदि आप TortoiseSVN, AnkhSVN इत्यादि का उपयोग कर रहे हैं, तो यह बहुत आसानी से (तुच्छ) है कि कौन सी फाइल को कमिटमेंट में बदलना है। पुनः 2) यदि आप नहीं चाहते कि अन्य देवता आपका कोड प्राप्त करें, तो एक शाखा बनाएं और जब तैयार हों तो विलय करें, यह कठिन नहीं है।
si618

अटल? ठीक है आप दोषपूर्ण कमिट को मर्ज कर सकते हैं और रिपॉजिटरी पहले जैसी है। लेकिन आप सही हैं यह प्रलेखित है। लेकिन क्या यह अच्छा या बुरा है? मुझे लगता है यह निर्भर करता है ...
schoetbi

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

4

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

मैं जीत के जवाब से असहमत हूं, यह कहते हुए कि जीआईटी का मुख्य लाभ ऑफ़लाइन काम है - यह निश्चित रूप से उपयोगी है, लेकिन यह मेरे उपयोग के मामले के लिए एक अतिरिक्त की तरह है। SVK ऑफ़लाइन भी काम कर सकता है, फिर भी मेरे लिए कोई सवाल नहीं है कि मैं अपने सीखने के समय में कौन सा निवेश करूं)।

यह सिर्फ इतना है कि यह अविश्वसनीय रूप से शक्तिशाली और तेज है और, अच्छी तरह से अवधारणाओं के लिए उपयोग किया जा रहा है - बहुत उपयोगी (हाँ, इस अर्थ में: उपयोगकर्ता के अनुकूल)।

एक मर्जिंग स्टोरी पर अधिक जानकारी के लिए, यह देखें: svn मर्ज के साथ मदद करने के लिए git-svn (या समान) * just * का उपयोग करना?


3

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


3

मुझे केंद्रीय भंडार के पानी को मैला किए बिना Git में अपने स्रोत कोड की स्थानीय शाखाओं का प्रबंधन करने में सक्षम होना बहुत पसंद है। कई मामलों में मैं सबवर्सन सर्वर से कोडआउट चेकआउट करूंगा और ऐसा करने में सक्षम होने के लिए एक स्थानीय गिट रिपॉजिटरी चलाऊंगा। यह भी बहुत अच्छा है कि एक Git रिपॉजिटरी को इनिशियलाइज़ करना हर जगह .svn फोल्डर को कष्टप्रद करने के साथ फाइल सिस्टम को प्रदूषित नहीं करता है।

और जहां तक ​​विंडोज टूल सपोर्ट की बात है, TortoiseGit बेसिक्स को बहुत अच्छी तरह से हैंडल करता है, लेकिन मैं अभी भी कमांड लाइन को पसंद करता हूं जब तक कि मुझे लॉग नहीं देखना है। मैं वास्तव में जिस तरह से कछुआ {Git | SVN} मदद करता है जब प्रतिबद्ध लॉग पढ़ने में मदद करता है।


3

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

लेकिन यहाँ समस्या है: तोड़फोड़ एक वास्तुशिल्प मृत-अंत है

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

अब यहाँ मेरा दिल लगा रहा है और किसी के लिए भी अज्ञेय की सलाह, जो अभी भी मानता है कि तोड़फोड़ भविष्य के भविष्य के लिए पर्याप्त है:

आरसीएस और सीवीएस की गलतियों से सीखी गई वीसीएस की नई नस्लों को तोड़फोड़ कभी नहीं पकड़ेगी; यह एक तकनीकी असंभवता है जब तक कि वे रिपॉजिटरी मॉडल को जमीन से नहीं हटाते हैं, लेकिन तब यह वास्तव में svn नहीं होगा? भले ही आपको लगता है कि आप एक आधुनिक वीसीएस की क्षमताओं को नहीं समझते हैं, आपकी अज्ञानता आपको तोड़फोड़ के नुकसान से नहीं बचाएगी, जिनमें से कई ऐसी परिस्थितियां हैं जो असंभव हैं या आसानी से अन्य प्रणालियों में हल हो जाती हैं।

यह अत्यंत दुर्लभ है कि किसी समाधान की तकनीकी हीनता इतनी स्पष्ट है जैसे कि यह svn के साथ है, निश्चित रूप से मैं जीत-बनाम-लिनक्स या एमएसीएस-बनाम-vi के बारे में ऐसी राय कभी नहीं बताऊंगा, लेकिन इस मामले में ऐसा है क्लियरकट, और सोर्स कंट्रोल डेवलपर के शस्त्रागार में एक ऐसा मौलिक उपकरण है, जो मुझे लगता है कि इसे असमान रूप से कहा जाना चाहिए। संगठनात्मक कारणों से svn का उपयोग करने की आवश्यकता के बावजूद, मैंने सभी svn उपयोगकर्ताओं को उनके तार्किक दिमाग को गलत धारणा बनाने की अनुमति नहीं दी है कि अधिक आधुनिक VCSes केवल बड़े खुले स्रोत परियोजनाओं के लिए उपयोगी हैं। आपके विकास कार्य की प्रकृति के बावजूद, यदि आप एक प्रोग्रामर हैं, तो आप एक अधिक प्रभावी प्रोग्रामर होंगे यदि आप सीखते हैं कि बेहतर-डिज़ाइन किए गए VCSes का उपयोग कैसे किया जाए, चाहे वह Git, Mercurial, Darcs, या कई अन्य हों।


2

तोड़फोड़ का उपयोग करना बहुत आसान है। मैंने पिछले वर्षों में कभी कोई समस्या नहीं पाई है या कुछ ऐसा काम नहीं किया है जो अपेक्षित है। इसके अलावा कई उत्कृष्ट जीयूआई उपकरण हैं और एसवीएन एकीकरण के लिए समर्थन बड़ा है।

गिट के साथ आपको अधिक लचीला वीसीएस मिलता है। आप इसे उसी तरह उपयोग कर सकते हैं जैसे SVN एक दूरस्थ रिपॉजिटरी के साथ जहां आप सभी बदलाव करते हैं। लेकिन आप इसे ज्यादातर ऑफ़लाइन भी उपयोग कर सकते हैं और केवल समय-समय पर दूरस्थ रिपॉजिटरी में परिवर्तन को धक्का दे सकते हैं। लेकिन गिट अधिक जटिल है और इसमें स्टेटर सीखने की अवस्था है। मैंने पहली बार खुद को गलत शाखाओं के लिए प्रतिबद्ध पाया, शाखाओं को अप्रत्यक्ष रूप से बनाया या गलती के बारे में अधिक जानकारी के साथ त्रुटि संदेश प्राप्त नहीं किया और जहां मुझे बेहतर सुझाव प्राप्त करने के लिए Google के साथ खोज करनी चाहिए। मार्करों के प्रतिस्थापन ($ Id $) जैसी कुछ आसान चीजें काम नहीं करती हैं, लेकिन GIT के पास खुद की लिपियों को मर्ज करने के लिए एक बहुत ही लचीला फ़िल्टरिंग और हुक तंत्र है और इसलिए आपको वे सभी चीजें मिलती हैं जिनकी आपको ज़रूरत है और अधिक है लेकिन इसे और अधिक समय और प्रलेखन पढ़ने की आवश्यकता है ;)

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

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

Git को कुछ बेहतर दस्तावेज़ीकरण की आवश्यकता है और त्रुटि रिपोर्टिंग अधिक सहायक होनी चाहिए। इसके अलावा मौजूदा उपयोगी GUI केवल शायद ही कभी होते हैं। इस बार मैंने लिनक्स के लिए केवल 1 जीयूआई पाया है जिसमें अधिकांश गिट फीचर्स (गिट-कोला) का समर्थन है। ग्रहण एकीकरण काम कर रहा है, लेकिन इसका आधिकारिक जारी नहीं किया गया है और कोई आधिकारिक अपडेट साइट नहीं है (ट्रंक से आवधिक बिल्ड के साथ केवल कुछ बाहरी अपडेट साइट http://www.jgit.org/updates ) इसलिए इस दिनों Git का उपयोग करने का सबसे पसंदीदा तरीका है कमांड लाइन है।


2

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


2

अच्छे Git GUI की तलाश कर रहे लोगों के लिए, Syntevo SmartGit एक अच्छा समाधान हो सकता है। इसका मालिकाना, लेकिन गैर-व्यावसायिक उपयोग के लिए नि: शुल्क, विंडोज / मैक / लिनक्स पर चलता है और यहां तक ​​कि एसवीएन को भी कुछ प्रकार के गिट-स्वन ब्रिज का उपयोग करने का समर्थन करता है, मुझे लगता है।


1

http://subversion.wandisco.com/component/content/article/1/40.html

मुझे लगता है कि यह कहना काफी सुरक्षित है कि डेवलपर्स के बीच, SVN Vs. पिछले कुछ समय से गिट लॉजिक चल रहा है, जिसमें हर किसी का अपना नजरिया बेहतर है। इसे 2010 में हमारे वेबिनार के दौरान और बेयोंड के सवालों के जवाब में लाया गया था।

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

वह सबवर्सन में आने वाले बदलावों के बारे में भी बात करता है, जैसे कि वर्किंग कॉपी नेक्स्ट जेनरेशन (WC-NG), जिसके बारे में उनका मानना ​​है कि कई यूजर्स Git यूजर्स को फिर से सबवर्सन में बदल देंगे।

उनके वीडियो को देखें और हमें बताएं कि आप इस ब्लॉग पर टिप्पणी करके या हमारे मंचों पर पोस्ट करके क्या सोचते हैं। पंजीकरण सरल है और केवल एक पल लगेगा!


स्पष्ट रूप से पक्षपाती, क्योंकि उनका उपकरण तोड़फोड़ पर आधारित है। बस केह रहा हू।
१२:१२ पर जकुब नारबस्की


1

मैं हाल ही में Git भूमि में निवास कर रहा हूं, और मुझे यह व्यक्तिगत परियोजनाओं के लिए पसंद है, लेकिन मैं अभी तक काम के प्रोजेक्ट्स को स्विच करने में सक्षम नहीं होगा, फिर भी बिना किसी दबाव के लाभ के बिना, कर्मचारियों से आवश्यक सोच में बदलाव को देखते हुए, सबवर्सन से। इसके अलावा सबसे बड़ी परियोजना जो हम घर में चलाते हैं वह svn पर बहुत निर्भर है : बाहरी , जो कि मैंने अब तक जो देखा है, उससे गिट में इतनी अच्छी तरह से और मूल रूप से काम नहीं करता है।


1

सबसे पहले, समवर्ती संस्करण नियंत्रण हल करने के लिए एक आसान समस्या की तरह लगता है। ऐसा बिल्कुल नहीं है। वैसे भी ...

एसवीएन काफी गैर-सहज है। गित और भी बदतर है। [व्यंग्यात्मक-अटकलें] यह इसलिए हो सकता है क्योंकि डेवलपर्स, कि समवर्ती संस्करण नियंत्रण जैसी कठिन समस्याओं की तरह, एक अच्छा यूआई बनाने में ज्यादा रुचि नहीं है। [/ व्यंग्यात्मक-अटकलें]

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


1

मुझे लगता है कि तोड़फोड़ Git से बेहतर है (कम से कम मैं जिन परियोजनाओं पर काम करता हूं) के लिए, मुख्य रूप से इसकी प्रयोज्यता और सरलता वर्कफ़्लो के कारण:

http://www.databasesandlife.com/why-subversion-is-better-than-git/

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