2011-01-31 17 views
51

clone कमांड क्या करता है? क्या svn में इसके बराबर कोई है?गिट रिमोट एड और गिट क्लोन के बीच अंतर

git remote add test git://github.com/user/test.git 

और

git clone git://github.com/user/test.git 

बीच क्या अंतर है क्या बनाया रेपो इस मामले के नाम?

+1

संभावित डुप्लिकेट [क्लोन और एमकेडीआईआर-> सीडी-> init-> रिमोट-एड-> पुल के बीच क्या अंतर है?] (Http://stackoverflow.com/questions/4108778/what-is-the- अंतर-बीच-क्लोन-एंड-एमकेडीआईआर-सीडी-इनिट-रिमोट-एड-पुल) – Cascabel

+0

मैंने जो डुप्लिकेट चुना है वह आपके प्रश्न का एक सुपरसेट है: यह पूछता है कि "betweeen 'git रिमोट एड में क्या अंतर है; ... अन्य आदेश ... 'और' गिट क्लोन ' – Cascabel

उत्तर

50

git remote add बस आपके गिट कॉन्फ़िगरेशन में एक प्रविष्टि बनाता है जो किसी विशेष URL के लिए नाम निर्दिष्ट करता है। इसका उपयोग करने के लिए आपके पास मौजूदा गिट रेपो होना चाहिए।

git clone आपके द्वारा निर्दिष्ट यूआरआई में स्थित मौजूदा एक की प्रतिलिपि बनाकर एक नया गिट भंडार बनाता है।

+0

आपका मतलब है कि, उदाहरण के लिए, में मेरा उदाहरण, परीक्षण फ़ोल्डर खाली हो जाएगा और मुझे टेस्ट फ़ोल्डर से '$ गिट फ़ेच टेस्ट' करना होगा? – nacho4d

+0

@ nacho4d: आपको पहले 'गिट इनिट' करना होगा, फिर 'गिट फ़ेच' और 'गिट मर्ज' करना होगा (या 'गिट पुल') बाद में, और फिर आप अभी भी थोड़ा सा बंद हो जाएंगे ... मैंने जो डुप्लिकेट लिंक किया है उसे देखें। – Cascabel

6

clone कमांड आपके द्वारा निर्दिष्ट रेपो की एक स्थानीय प्रति बनाता है। remote add एक रिमोट रेपो जोड़ता है जिसे आप या तो धक्का या खींच सकते हैं।

clone के एसवीएन समतुल्य checkout है।

+0

... मुझे लगता है कि आपका मतलब है कि' रिमोट एड 'एक रिमोट रेपो जोड़ता है जिसे आप ** ** खींच सकते हैं या ** से धक्का दे सकते हैं। –

39

इन कार्यात्मक समान हैं (यह कोशिश करो!):

 
# git clone REMOTEURL foo 

और:

 
# mkdir foo 
# cd foo 
# git init 
# git remote add origin REMOTEURL 
# git pull origin master 

अब मामूली अंतर हैं, लेकिन मूल रूप से आप शायद उन्हें नोटिस नहीं होंगे। पाठक को छोड़ दिया गया अभ्यास के रूप में, प्रत्येक निर्देशिका से .git/config की तुलना करें।

+2

मैंने कोशिश की है। 'क्लोन' का उपयोग करने के साथ, .git/config में एक [शाखा" मास्टर "] भाग होता है। क्या इसका मतलब यह है कि 'क्लोन' (भविष्य में) का उपयोग करते समय मैं उस शाखा को विलय कर सकता हूं और 'रिमोट एड' के साथ मैं नहीं कर सकता? – nacho4d

+2

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

+0

@ nacho4d: आप इस कमांड के साथ .git/config में वही [शाखा "मास्टर"] अनुभाग प्राप्त कर सकते हैं: 'git शाखा --set -अपस्ट्रीम मास्टर मूल/मास्टर'। यह तीसरा आदेश है जिसका उपयोग मैंने 'गिट रिमोट एड' और 'गिट पुल' के बाद किया है, और उन 3 कमांडों ने मुझे 'गिट क्लोन' के लिए एक समान विन्यास दिया है। – bjnord

संबंधित मुद्दे