2012-03-02 11 views
392

जब मैं चलाएँ:गिट में "मूल" क्या है?

git push origin branchname 

वास्तव में क्या origin है और क्यों मैं शाखा का नाम इससे पहले कि यह टाइप करने के लिए है?

+41

"मूल" रिमोट रिपोजिटरी का नाम है जहां आप प्रकाशित करना चाहते हैं। सम्मेलन द्वारा, डिफ़ॉल्ट रिमोट रिपोजिटरी को "मूल" कहा जाता है, लेकिन आप एक ही समय में कई रिमोट (विभिन्न नामों के साथ) के साथ काम कर सकते हैं। यहां अधिक जानकारी (उदाहरण के लिए): http://gitref.org/remotes/ –

+1

ध्यान दें कि मूल "अपस्ट्रीम" रेपो है: http://stackoverflow.com/questions/2739376/definition-of-downstream-and देखें -अपस्ट्रीम/2749166 # 2749166 – VonC

+1

संभावित गलती [गिट पुश मूल मास्टर 'में' उत्पत्ति 'का अर्थ क्या है] (https://stackoverflow.com/questions/5270760/whats-the-meaning-of-origin-in -गिट-पुश-मूल-मास्टर) – nawfal

उत्तर

386

origin एक एक विशेष दूरदराज के भंडार के लिए अपने सिस्टम पर उर्फ ​​है। यह वास्तव में उस भंडार की संपत्ति नहीं है।

git push origin branchname 

करने के बाद आप origin भंडार करने के लिए पुश करने के लिए कह रहे हैं। रिमोट रिपोजिटरी origin नाम देने की कोई आवश्यकता नहीं है: असल में एक ही रिपोजिटरी के पास अन्य डेवलपर के लिए एक अलग उपनाम हो सकता है।

रिमोट्स केवल उपनाम है जो भंडारों का URL संग्रहीत करता है। आप देख सकते हैं कि URL

git remote -v 

का उपयोग कर push आदेश में से प्रत्येक दूरदराज के अंतर्गत आता है, तो आप रिमोट उपयोग कर सकते हैं या आप बस सीधे एक यूआरएल उपयोग कर सकते हैं। एक उदाहरण URL का उपयोग करता है:

git push [email protected]:git/git.git master 
+34

स्पष्टीकरण के लिए (कुछ अन्य उत्तरों को देखने के बाद); नाम 'उत्पत्ति' आपके सिस्टम पर एक उपनाम * है जो किसी विशेष भंडार के लिए है जो कहीं और मौजूद है। यह वास्तव में उस भंडार की संपत्ति नहीं है। एक ही भंडार को एक उत्प्रेरक द्वारा 'उत्पत्ति' और दूसरे द्वारा 'फ्लब' के रूप में अलिया किया जा सकता है। –

+0

क्या एकमात्र रिमोट कई अन्य रिमोट्स के लिए उपनाम हो सकता है? क्या होगा यदि मैं एक रिमोट को कई अन्य रिमोट्स पर धक्का देना चाहता था? उदाहरण के लिए, प्राथमिक रेपो को दबाएं, और बैकअप रेपो को धक्का दें? क्या कुछ परिस्थितियों में यह एक उचित बात होगी? संपादित करें: यहां [कई समाधान] हैं [https://stackoverflow.com/questions/849308/pull-push-from-multiple-remote-locations)। – Yankee

58

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

आप git remote show origin टाइप करके रिमोट के बारे में अधिक जानकारी देख सकते हैं।

+0

गिट कमांड शुरुआती लोगों के लिए बहुत भ्रमित हैं। मुझे लगता है कि इसे इस संस्करण नियंत्रण प्रणाली के इतिहास के साथ करना है। तो, प्रश्न: 'गिट रिमोट शो मूल' के बजाय, क्यों न केवल 'गिट शो मूल'? एक कारण होना चाहिए, यह क्या है? धन्यवाद। – Stack0verflow

+3

@ Stack0verflow: शायद यह एक नए प्रश्न के रूप में बेहतर तरीके से पूछा जाता है ताकि यदि आप उत्सुक हैं तो लोग शोध कर सकते हैं। 'गिट शो' पहले से ही एक और कमांड है जो एक प्रतिबद्धता दिखाता है, और तकनीकी रूप से कुछ भी आपको रिमोट नामक मूल के अलावा 'उत्पत्ति' नामक शाखा नहीं रोक देगा ... –

30

origin आपके रिमोट रिपोजिटरी के URL पर डिफ़ॉल्ट उपनाम है।

92

origin रिमोट रिपोजिटरी नाम नहीं है। यह एक स्थानीय उपनाम रिमोट रिपोजिटरी यूआरएल के स्थान पर एक कुंजी के रूप में सेट है।

यह पुश को संकेत देते समय उपयोगकर्ता को संपूर्ण रिमोट यूआरएल टाइप करने से बचाता है।

यह नाम डिफ़ॉल्ट रूप से सेट किया गया है और पहली बार रिमोट से क्लोनिंग करते समय गिट द्वारा सम्मेलन के लिए।

यह अन्य नाम हार्ड कोडित है नहीं और कमांड प्रॉम्प्ट निम्नलिखित का उपयोग कर बदला जा सकता है:

git remote rename origin mynewalias 

आगे स्पष्टीकरण के लिए http://git-scm.com/docs/git-remote पर एक नजर डालें।

16

मैं इससे भी उलझन में था, और नीचे मैंने जो सीखा है।

जब आप GitHub से भंडार, उदाहरण के लिए क्लोन:

  • origin URL जिससे आप रिपोजिटरी क्लोन के लिए अन्य नाम है।ध्यान दें कि आप इस उपनाम को बदल सकते हैं।

  • रिमोट रिपोजिटरी में master शाखा है (origin द्वारा उपनाम)। स्थानीय रूप से बनाई गई एक और master शाखा भी है।

अधिक जानकारी इस तो सवाल से पाया जा सकता है: Git branching: master vs. origin/master vs. remotes/origin/master

9

जब आप git clone के साथ एक भंडार क्लोन, यह स्वतः ही origin बुलाया वापस क्लोन भंडार की ओर इशारा करते एक दूरस्थ कनेक्शन बनाता है। यह डेवलपर्स के लिए एक केंद्रीय भंडार की स्थानीय प्रतिलिपि बनाने के लिए उपयोगी है क्योंकि यह अपस्ट्रीम परिवर्तनों को खींचने या स्थानीय प्रतिबद्धताओं को प्रकाशित करने का एक आसान तरीका प्रदान करता है। यह व्यवहार भी है कि अधिकांश गिट-आधारित परियोजनाएं उनके केंद्रीय भंडार मूल को क्यों कहते हैं।

8

सरल! "मूल" सिर्फ तुम क्या अपने रिमोट भंडार उपनाम जब आप इस प्रकार का आदेश भाग गया है:

git remote add origin [email protected]:USERNAME/REPOSITORY-NAME.git 

तो पर Git जानता से उस विशिष्ट भंडार (इस मामले में एक GitHub भंडार में) करने के लिए "मूल" अंक। आप इसे "जिथूब" या "रेपो" या जो कुछ भी चाहते थे उसका नाम दे सकते थे।

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