गिट क्लोन और चेकआउट में क्या अंतर है?


जवाबों:


337

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

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

इसे जमा करने के लिए, क्लोन आपके पास नहीं होने वाली रिपॉजिटरी लाने के लिए है, चेकआउट एक रिपॉजिटरी में पहले से मौजूद शाखाओं के बीच स्विच करने के लिए है।

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


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

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

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

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

5
कांटा एक गितुब शब्द है और यह स्वयं गिट से संबंधित नहीं है।
अगस्त लिलियास

123

git क्लोन रिमोट रिपीट सर्वर से आपकी रिपॉजिटरी लाने के लिए है।

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

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

git checkout develop_branch

उदाहरण के लिए, आप किसी विशेष फ़ाइल की किसी विशेष स्थिति की जांच करना चाहते हैं

git checkout commit_point_A -- <filename>

आपके लिए Git सीखने के लिए यह एक अच्छा संदर्भ है , इससे आप बहुत आसानी से समझ सकते हैं।


20
"रिमोट गिट सर्वर से" - सर्वर का रिमोट होना आवश्यक नहीं है। git cloneस्थानीय रेपो के साथ भी काम करेगा।
सेट करें

1
गिट के लिए एक दृश्य संदर्भ के लिंक के लिए धन्यवाद!
डेविड पॉइंटर

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

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

11

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

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


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

6

बस git checkout के 2 उपयोग हैं

  1. मौजूदा स्थानीय शाखाओं के बीच स्विचिंग जैसे git checkout <existing_local_branch_name>
  2. ध्वज-बी का उपयोग करके वर्तमान शाखा से एक नई शाखा बनाएं। मान लीजिए अगर आप मास्टर ब्रांच में हैं तो मास्टर git checkout -b <new_feature_branch_name>की सामग्री के साथ एक नई ब्रांच बनाएंगे और नए बनाए गए ब्रांच पर स्विच करेंगे

आप आधिकारिक साइट पर अधिक विकल्प पा सकते हैं


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

2

checkout कई मामलों के लिए उपयोग किया जा सकता है:

पहला मामला : उदाहरण के लिए स्थानीय भंडार में शाखा के बीच स्विच करें: git checkout exists_branch_to_switch

आप इस मामले में नई शाखा भी बना सकते हैं और इस मामले में स्विच आउट कर सकते हैं -b

git checkout -b new_branch_to_switch

दूसरा मामला : एक्स रे से फ़ाइल को पुनर्स्थापित करें

git checkout rev file_to_restore ...

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