2011-09-04 14 views
239

git clone और git checkout के बीच क्या अंतर है?गिट क्लोन और चेकआउट के बीच क्या अंतर है?

+1

संबंधित पर और अधिक विकल्प मिल सकता है जाएगा: http: // stackoverflow। कॉम/प्रश्न/3329 9 43/अंतर-बीच-ए-शाखा-कांटा-और-क्लोन-इन-गिट – Mat

उत्तर

223

चेकआउट के लिए आदमी पेज: http://git-scm.com/docs/git-checkout

क्लोन के लिए आदमी पेज: http://git-scm.com/docs/git-clone

यह कुल मिलाकर, क्लोन डेटा संग्रह स्थान नहीं है प्राप्त करने में कठिनाई के लिए है, चेकआउट एक में शाखाओं के बीच स्विच करने के लिए है आपके पास पहले से भंडार है।

नोट: जिनके पास एसवीएन/सीवीएस पृष्ठभूमि है और जीआईटी के लिए नया है, एसवीएन/सीवीएस में git clone के बराबर checkout है। अलग-अलग शब्दों का एक ही शब्द अक्सर भ्रमित होता है।

+33

'चेकआउट' का उपयोग अन्य चीजों के लिए भी किया जा सकता है, जैसे कि आपकी फ़ाइल को उस फ़ाइल के संस्करण के साथ अपनी कार्यशील प्रतिलिपि में ओवरराइट करना एक और संशोधन से। – svick

+5

और आप "पुल" बनाम "चेकआउट" का उपयोग कब करते हैं? – Kokodoko

+18

पुल एक fetch प्लस विलय है, चेकआउट एक स्थानीय ऑपरेशन है जो केवल पहले से प्राप्त डेटा पर काम करता है। तो यह बिल्कुल svn चेकआउट की तरह नहीं है। –

105

गिट क्लोन रिमोट गिट सर्वर से अपने भंडार लाने के लिए है।

गिट चेकआउट आपके भंडार की अपनी वांछित स्थिति (जैसे शाखाओं या विशेष फ़ाइलों) की जांच करना है।

उदा।, आप वर्तमान में मास्टर शाखा पर हैं और आप विकास शाखा में स्विच करना चाहते हैं।

git checkout develop_branch 

जैसे, आप एक विशेष फ़ाइल

git checkout commit_point_A -- <filename> 

यहाँ की एक विशेष स्थिति के लिए चेकआउट करना चाहते हैं एक good reference उस Git जानने के लिए, आप और अधिक आसानी से समझ सकते हैं कि है।

+17

"रिमोट गिट सर्वर से" - सर्वर के लिए रिमोट होने के लिए यह आवश्यक नहीं है। 'गिट क्लोन' स्थानीय रिपोज़ के साथ भी काम करेगा। – SET

+1

गिट के दृश्य संदर्भ के लिंक के लिए धन्यवाद! –

+0

@ किट हो: लिंक एक संदर्भ के रूप में ठीक है, लेकिन उपरोक्त व्यक्ति की तरह गिट के बारे में मूल प्रश्न वाले किसी व्यक्ति के लिए इसकी बहुत मदद नहीं है। जैसा कि लेख स्वयं कहता है, "एक बार जब आप गिट काम करते हैं, इस बारे में कुछ पता चल जाए, तो यह साइट आपकी समझ को मजबूत कर सकती है" –

10

ध्यान देने योग्य एक बात यह है कि गिट के भीतर किसी भी "कॉपीआउट" की कमी है। ऐसा इसलिए है क्योंकि आपके पास पहले से ही पूर्ण आपके स्थानीय रेपो में कॉपी है - आपके स्थानीय रेपो आपके चुने हुए अपस्ट्रीम रेपो के clone हैं। तो संदर्भ संदर्भ में उन फ़ाइलों पर कुछ 'लॉक' डाले बिना, सब कुछ के प्रभावी ढंग से checkout प्रभावी ढंग से व्यक्तिगत है।

गिट SHA1 हैश मानों को यह सत्यापित करने के लिए तंत्र प्रदान करता है कि आपके पास फ़ाइल/निर्देशिका पेड़/प्रतिबद्ध/रेपो की प्रतिलिपि बिल्कुल वही है जो किसी भी चीज़ के रूप में चीजों को "मास्टर" घोषित करने में सक्षम है विश्वास का पदानुक्रम। यह उन सभी 'ताले' से बचाता है जो अधिकांश एससीएम सिस्टम को चकित करते हैं (निजी प्रतियों की सामान्य समस्याओं, बड़े विलय, और स्रोत कोड का कोई वास्तविक नियंत्रण या प्रबंधन ;-)!

+4

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

2

सीधे शब्दों में Git चेकआउट 2 का उपयोग करता है की तरह git checkout <existing_local_branch_name>

  • मौजूदा स्थानीय शाखाओं के बीच

    1. स्विचिंग वर्तमान शाखा से एक नई शाखा झंडा बी बनाएं है। मान लीजिए अगर आप मास्टर शाखा में कर रहे हैं तो git checkout -b <new_feature_branch_name> मास्टर की सामग्री के साथ एक नई शाखा बना सकते हैं और नव निर्मित शाखा करने के लिए स्विच

    आप official site

  • +0

    अच्छा। यह '-b' विकल्प शानदार है जो एक नई स्थानीय शाखा बनाता है और एक ही समय में एक ही कमांड में इसे जांचता है। पसन्द आया! – RBT

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