2013-02-11 40 views
48

मुझे उत्सुकता है कि क्यों गिटहब मर्ज करने के लिए सबमिशन कहता है, "अनुरोध खींचें।"गिटहब विदेशी सबमिशन क्यों कहते हैं, एक "पुल अनुरोध"?

मेरी समझ से, git pull एक रिमोट रिपोजिटरी से, मौजूदा कार्यशील शाखा में सभी परिवर्तनों को खींच देगा। फिर FETCH_HEAD के साथ उन परिवर्तनों को मर्ज करें। (Git Pull)

तो git push पर एक नज़र डालें ... एक धक्का वास्तव में एक भंडार में किए गए परिवर्तनों को धक्का देगा। और यह नहीं है कि आप एक गिट रेपो के साथ क्या कर रहे हैं? अपना कोड मर्ज करने के लिए "अनुरोध" सबमिट करना? तो इसे "पुश अनुरोध" क्यों नहीं कहा जाता है?

उत्तर

57

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

+5

तो क्या आप मूल रूप से उन लोगों को "अनुरोध" करते हैं जिन्हें आप रेपो से "पुल" करने के लिए योगदान देना चाहते हैं? –

+1

@bluesm यह बिल्कुल है :) – poke

+0

धन्यवाद! सबसे अच्छा स्पष्टीकरण कभी! "पुल अनुरोध" शब्द अब तक मेरे लिए गुप्त था। –

4

जब आप किसी और को अपना पैच भेजते हैं, तो आप उस व्यक्ति को को अपने भंडार में बदल देते हैं। अब, pull एक लांच और विलय है। इसलिए, यदि वह व्यक्ति आपका परिवर्तन खींचता है, तो वह उसे भी विलय कर देगा, जो आप चाहते हैं।

1

जब आप पुल अनुरोध सबमिट करते हैं, तो आप रेपो के मालिक से अपने स्थानीय रिपो में अपने परिवर्तन खींचने के लिए कहते हैं (यानी उन्हें मर्ज करें)। फिर वह रेपो प्रकाशित किया जाएगा (git push के माध्यम से) एक सार्वजनिक रिपो में लेकिन यह निहित है।

आप इसे "पुश अनुरोध" नहीं कह सकते हैं क्योंकि कोई भी आपके परिवर्तनों को धक्का नहीं देता है, वे उन्हें खींचते हैं।

9

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

मैं आपके जीथब भंडार को फोर्क कर दूंगा और अपने काम के लिए एक नई शाखा तैयार करूंगा। एक बार जब मैं वर्तमान कार्यान्वयन से खुश हूं तो मैं आपको अपनी शाखा में git pull पर अपनी शाखा भेजूंगा (क्योंकि मेरे पास सीधे धक्का देने का अधिकार नहीं है)। जब आप git pull करते हैं तो आपके पास कौन सी शाखा खींचने का विकल्प होता है और जहां आप खींचना चाहते हैं। शायद आप कोड की जांच करने के लिए सीधे अपनी master शाखा में नहीं बल्कि कुछ अन्य शाखाओं में खींचना नहीं चाहते हैं।

git book इस तरह के विभिन्न कार्य प्रवाहों पर एक अच्छा अनुभाग है।

1

आप अपने निजी भंडार से अपने सार्वजनिक भंडार में से आगे बढ़ते हैं। हालांकि, आप किसी और के भंडार पर परिवर्तन को मजबूर नहीं कर सकते हैं, इसलिए आप अनुरोध करते हैं कि वे आपके सार्वजनिक भंडार से उनके पास खींचें।