2012-06-28 17 views
39

मैं आज कुछ अजीब बात पर ठोकर खाई। मैंने अपने ग्रीष्मकालीन नौकरी में एक सहकर्मी से पूछा कि मैं अपने कोड के लिए एक नया रिमोट गिट रेपो स्थापित करने में मदद करता हूं और उसके बारे में बहुत भ्रम था और मैंने क्या करना चाहता था। मैंने उनसे अपने रिमोट के रास्ते को देखने में सक्षम होने के लिए अपनी कॉन्फ़िगरेशन भेजने के लिए कहा और पाया कि उनके पास रिमोट नहीं है। जब मैं उससे इस बारे में पूछा गया है कि वह इस तरह अपने कार्यप्रवाह समझाया: \ localdir गिट पुश और गिट पुल के बीच क्या अंतर है?

बजाय:

  1. कुछ स्थानीय स्तर पर
  2. बदलें
  3. ले जाएँ दूरस्थ निर्देशिका के लिए
  4. Git पुल ग कमिट एक रिमोट को धक्का देने के लिए वह लगातार अपने स्थानीय रेपो से हमारे सर्वर पर एक को खींच लिया। पीछे की ओर काम करने के क्रमबद्ध करें। जब मैंने उससे इस बारे में सामना किया तो उसने मुझसे पूछा कि अंतर क्या था और मैं वास्तव में उसे जवाब नहीं दे सका, लेकिन मुझे लगता है कि कुछ सही है?

    तो मेरा प्रश्न यह है कि: रिमोट को धक्का देने और रिमोट से खींचने में क्या अंतर है?

+4

@ डाउनवॉटर: कृपया किसी को यह बताना याद रखें कि प्रश्न क्यों सुधार किए जा सकते हैं। – Zeemee

+2

सवाल के बाद भी डाउनवोट करने के लिए प्रेरित ** ** हास्यास्पद लगता है लेकिन वास्तव में नहीं है! इसके बजाय अब ऊपर उठाना। – eckes

+2

@ मूलमोथ बिल्कुल। हर कोई यह जानना कि मैंने गलत क्या किया है अगर कोई मुझे इसके चेहरे पर मारता है। =) – Qw4z1

उत्तर

10

रिमोट पर धक्का देना: कुछ अन्य चीजें आपको एक अन्य गिट रेपो के पास भेजती हैं। गिट रेपो को "रिमोट" के रूप में माना जाता है, लेकिन यह आपके हार्ड ड्राइव के किसी अन्य फ़ोल्डर में रेपो हो सकता है। रिमोट से खींचते हुए: कुछ रिमोट रेपो से कुछ प्राप्त करें और उन्हें अपने वर्तमान हेड (अपने रेपो का वर्तमान चेकआउट) में विलय करें

आपके सहकर्मी के पास पुश के बजाय पुल का उपयोग हो सकता है क्योंकि आपका भंडार उपलब्ध नहीं हो सकता है (कोई गिट डिमन चल रहा है, या gitweb, या ssh सर्वर पर), लेकिन वह आपके कंप्यूटर से उपलब्ध था। चूंकि यह एक सर्वर है, हो सकता है कि वह एक गिट डिमन/सेवा का पर्दाफाश नहीं करना चाहें जो हमले का वेक्टर हो सकता है।

लेकिन अगर अपने भंडार साझा किया गया था/उपलब्ध है, वह बस ऐसा करने में सक्षम हो गया होता:

  1. परिवर्तन कुछ स्थानीय स्तर पर
  2. अपने भंडार
+1

मुझे लगता है कि यह मामला था क्योंकि मुझे सर्वर पर धक्का देने में कुछ समस्याएं भी थीं। – Qw4z1

+2

फिर यह है। और जैसा कि [eckes] (http://stackoverflow.com/a/11240793) द्वारा बताया गया है, सर्वर में पहले से ही एक चेक आउट निर्देशिका हो सकती है जो मास्टर को उत्पादन संस्करण के रूप में दर्शाती है। तो आप अपनी स्थानीय शाखा से रिमोट मास्टर शाखा में धक्का नहीं दे पाएंगे क्योंकि यह पहले ही उत्पादन आवश्यकताओं के लिए उपलब्ध होने के लिए चेक आउट हो चुका है। – Dolanor

0

कोई नहीं, रिपो एक दूसरे की प्रतियां हैं और खींचें और धक्का सिर्फ दिशा प्रवाह हैं। आपके सहकर्मी की विधि के साथ अंतर यह है कि उन्होंने चौथा अनियंत्रित आदेश जोड़ा।

1

हां, यह पीछे की ओर काम कर रहा है।

सिद्धांत कार्यप्रवाह है:

  1. परिवर्तन कुछ स्थानीय स्तर पर
  2. (एक और explained by Dolanor है)
  3. धक्का रिमोट निर्देशिका के लिए प्रतिबद्ध दूरदराज के धक्का नहीं के लिए

एक उपयोग के मामले में वह यह है कि रिमोट पर काम करने की प्रतिलिपि की जांच की जाती है (यानी यह कोई नंगे रेपो नहीं है)। जब वह रिमोट बॉक्स (जैसे master:master) पर चेक की गई शाखा को धक्का देना चाहता है, तो यह सफल नहीं होगा क्योंकि चेक-आउट शाखाओं को धक्का दिया जाता है।

मेरी राय में, यह दूरस्थ मशीन पर जाने और स्थानीय मशीन से धक्का देने के बजाय खींचने का एकमात्र उपयोग मामला है।

+1

मैंने दूसरे मामले को समझाया जहां रेपो अनजान है (कोई गिट डिमन, आदि)। मैं पहले से ही चेक आउट भंडार के बारे में भूल गया था। ऐसे में वर्कफ़्लो – Dolanor

+0

@ डोलनॉर करने के लिए 2 मामले होने लगते हैं: आप सही हैं! संपादित उत्तर – eckes

+0

तो मूल रूप से धक्का और खींचना सिर्फ विपरीत दिशाओं में काम करता है? – Qw4z1

13

के लिए प्रतिबद्ध

  • धक्का मेरे देखें कि आप या तो उपयोगकर्ताओं को अपने काम को कुछ रिपोजिटरी में धक्का दे सकते हैं जिसे "मास्टर" माना जाता है, या आप उन्हें एक ऐसे उपयोगकर्ता को पुल अनुरोध भेज सकते हैं जिसके पास "मास्टर" को संशोधित करने की अनुमति है।

    उदाहरण के लिए, गिथब, गैर-योगदानकर्ता को भंडार को धक्का नहीं देगा, लेकिन उन्हें पुल अनुरोध भेजने की अनुमति होगी, ताकि योगदानकर्ता अपने परिवर्तनों को एकीकृत कर सकें।

  • +2

    गिटहब पुल अनुरोध उदाहरण यह मेरे लिए बहुत स्पष्ट बनाता है। धन्यवाद! – Qw4z1

    +0

    यह उत्तर नौसिखियों को 'समझने' के लिए और अधिक नए नियमों को शुरू करने के बजाय, सरल शब्दों में बताता है। – NavkarJ

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