जब मैं चलता हूं:
git push origin branchname
वास्तव में क्या है origin
और मुझे शाखा नाम से पहले इसे क्यों लिखना है?
जब मैं चलता हूं:
git push origin branchname
वास्तव में क्या है origin
और मुझे शाखा नाम से पहले इसे क्यों लिखना है?
जवाबों:
origin
एक विशेष दूरस्थ रिपॉजिटरी के लिए आपके सिस्टम पर एक उपनाम है। यह वास्तव में उस भंडार का गुण नहीं है।
ऐसा करके
git push origin branchname
आप origin
रिपॉजिटरी को पुश करने के लिए कह रहे हैं । रिमोट रिपॉजिटरी नाम रखने की कोई आवश्यकता नहीं है origin
: वास्तव में एक ही रिपॉजिटरी किसी अन्य डेवलपर के लिए एक अलग उपनाम हो सकता है।
उपाय केवल एक उपनाम है जो रिपॉजिटरी के URL को संग्रहीत करता है। आप देख सकते हैं कि किस URL का उपयोग करके प्रत्येक रिमोट से संबंधित है
git remote -v
में push
आदेश, आप उपयोग कर सकते हैं रिमोट या आप बस एक का उपयोग कर सकते यूआरएल सीधे। एक उदाहरण जो URL का उपयोग करता है:
git push git@github.com:git/git.git master
git push
आपके लिए डॉक्स में यह देख सकते हैं कि यह पहली बार उस रिपॉजिटरी के लिए कॉन्फिग को चेक करता है (जिसे आप चेक कर सकते हैं git config --list
) branch.<branchname>.remote
। यदि वह सेट नहीं है, तो "यह मूल के लिए चूक" - git-scm.com/docs/git-push
origin
है नहीं दूरदराज के भंडार नाम। यह बल्कि दूरस्थ रिपॉजिटरी URL के स्थान पर एक कुंजी के रूप में सेट किया गया एक स्थानीय उपनाम है ।
यह उपयोगकर्ता को एक धक्का देते समय पूरे दूरस्थ URL को टाइप करने से बचता है।
यह नाम डिफ़ॉल्ट रूप से और Git द्वारा कन्वेंशन के लिए सेट किया जाता है जब पहली बार रिमोट से क्लोनिंग की जाती है।
यह उपनाम नाम हार्ड कोडित नहीं है और इसे कमांड प्रॉम्प्ट का उपयोग करके बदला जा सकता है:
git remote rename origin mynewalias
अधिक स्पष्टीकरण के लिए http://git-scm.com/docs/git-remote पर एक नज़र डालें ।
Git में "रिमोट" की अवधारणा है, जो आपके रिपॉजिटरी की अन्य प्रतियों के लिए केवल URL हैं। जब आप एक और रिपॉजिटरी को क्लोन करते हैं, तो गिट स्वचालित रूप से "मूल" नामक रिमोट बनाता है और इसे इंगित करता है।
आप टाइप करके रिमोट के बारे में अधिक जानकारी देख सकते हैं git remote show origin
।
git remote show origin
, बस क्यों नहीं git show origin
? एक कारण होना चाहिए, यह क्या है? धन्यवाद।
origin
आपके दूरस्थ रिपॉजिटरी के URL के लिए डिफ़ॉल्ट उपनाम है।
सरल! जब आप इस तरह से एक कमांड चलाते हैं तो "मूल" सिर्फ वही होता है जिसे आपने अपने रिमोट रिपॉजिटरी में शामिल किया है:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
तब से गिट को पता है कि "मूल" उस विशिष्ट भंडार (इस मामले में गिटहब भंडार) को इंगित करता है। आप इसे "जीथब" या "रेपो" या जो भी आप चाहते थे, नाम दे सकते थे।
मैं भी इससे भ्रमित था, और नीचे जो मैंने सीखा है, वह है।
जब आप एक रिपॉजिटरी को क्लोन करते हैं, उदाहरण के लिए गिटहब से:
origin
उस URL का उपनाम है जिसमें से आपने रिपॉजिटरी को क्लोन किया था। ध्यान दें कि आप इस उपनाम को बदल सकते हैं।
master
दूरस्थ रिपॉजिटरी (इसके द्वारा अलियास origin
) में एक शाखा है । master
स्थानीय रूप से बनाई गई एक और शाखा भी है ।
इस एसओ प्रश्न से आगे की जानकारी प्राप्त की जा सकती है: गिट ब्रांचिंग: मास्टर बनाम मूल / मास्टर बनाम रीमोट्स / मूल / मास्टर
जब आप एक रिपॉजिटरी के साथ क्लोन करते हैं git clone
, तो यह स्वचालित रूप से एक दूरस्थ कनेक्शन बनाता है जिसे origin
क्लोन रिपॉजिटरी में वापस इंगित किया जाता है। यह केंद्रीय रिपॉजिटरी की एक स्थानीय प्रति बनाने वाले डेवलपर्स के लिए उपयोगी है क्योंकि यह अपस्ट्रीम परिवर्तन को खींचने या स्थानीय कमिट प्रकाशित करने का एक आसान तरीका प्रदान करता है। यह व्यवहार इसलिए भी है क्योंकि अधिकांश गिट-आधारित परियोजनाएं अपने केंद्रीय भंडार मूल को बुलाती हैं।
यहाँ सबसे अच्छा जवाब:
https://www.git-tower.com/learn/git/glossary/origin
गिट में, "मूल" रिमोट रिपॉजिटरी के लिए एक शॉर्टहैंड नाम है जिसे मूल रूप से एक परियोजना से क्लोन किया गया था। अधिक सटीक रूप से, इसका उपयोग उस मूल रिपॉजिटरी के URL के बजाय किया जाता है - और इससे रेफ़रिंग बहुत आसान हो जाती है।
से https://www.git-tower.com/learn/git/glossary/origin :
गिट में, "मूल" रिमोट रिपॉजिटरी के लिए एक शॉर्टहैंड नाम है जिसे मूल रूप से एक परियोजना से क्लोन किया गया था। अधिक सटीक रूप से, इसका उपयोग उस मूल रिपॉजिटरी के URL के बजाय किया जाता है - और इससे रेफ़रिंग बहुत आसान हो जाती है।
ध्यान दें कि उत्पत्ति का अर्थ "जादुई" नाम नहीं है, लेकिन सिर्फ एक मानक सम्मेलन है। यद्यपि यह समझ में नहीं आता है कि इस सम्मेलन को अछूता छोड़ दिया जाए, आप बिना किसी कार्यक्षमता को खोए इसे पूरी तरह से बदल सकते हैं।
निम्न उदाहरण में, "क्लोन" कमांड का URL पैरामीटर क्लोन किए गए स्थानीय रिपॉजिटरी के लिए "मूल" बन जाता है:
git clone https://github.com/gittower/git-crash-course.git
अन्य उत्तर कहते हैं कि दूरस्थ रिपॉजिटरी origin
के URL के लिए एक उपनाम है जो पूरी तरह से सही नहीं है। यह ध्यान दिया जाना चाहिए कि एक पते के साथ शुरू होने http
वाला एक यूआरएल है, जबकि एक के साथ शुरू होता है git@
जो एक यूआरआई या यूनिवर्सल रिसोर्स आइडेंटिफ़ायर है।
सभी URL URI हैं, लेकिन सभी URI URL नहीं हैं।
संक्षेप में, जब आप टाइप git remote add origin <URI>
करते हैं तो आप अपने स्थानीय git से कह रहे हैं कि जब भी आप उस शब्द का उपयोग करते हैं, जिसका origin
वास्तव में मतलब है कि आपने जो URI निर्दिष्ट किया है। इसे एक वैरिएबल मान की तरह मानें।
और बस एक चर की तरह, आप इसे नाम कर सकते हैं जो कुछ भी आप चाहते हैं (उदाहरण के लिए। github
, heroku
, destination
, आदि)।
रिमोट (रिपॉजिटरी url उर्फ) → मूल (अपस्ट्रीम एलियास) → मास्टर (शाखा उपनाम);
remote
, स्तर के रूप में ही working directory
, index
, repository
,
origin
, स्थानीय रिपॉजिटरी शाखा का नक्शा दूरस्थ रिपॉजिटरी शाखा में