एक 'पुल अनुरोध' को 'पुश अनुरोध' क्यों नहीं कहा जाता है?


451

आधिकारिक रिपॉजिटरी के साथ एक शाखा का विलय करने के लिए इस्तेमाल की जाने वाली शब्दावली एक 'पुल अनुरोध' है। यह भ्रामक है, क्योंकि ऐसा प्रतीत होता है कि मैं अपने परिवर्तनों को आधिकारिक भंडार में धकेलने का अनुरोध कर रहा हूं।

इसे पुल अनुरोध क्यों कहा जाता है न कि पुश अनुरोध?


45
चित्र एक बड़ा, जीवित वृक्ष। पेड़ आपके लिए एक शाखा को धक्का देने के लिए बहुत मजबूत है, इसके बजाय आपको पेड़ को एक शाखा को ट्रंक में खींचने के लिए कहना चाहिए, इसे मजबूत करना।
ल्यूक


2
अगर गीथहब जैसे रिमोट रिपॉजिटरी का उपयोग किया जाता है, तो अंतिम कमांड में से एक जो सेक्शन के माध्यम से अनुरोध को पूरा करने में निष्पादित करेगा git push। मेरे लिए यह सब कहता है ... (हाँ, वे git पुल जारी कर सकते हैं, फिर git push करें, लेकिन पुश के लिए कहा गया था और आखिरकार ऐसा हो रहा है)
erobrob

62
गिटलैब उन्हें बुलाता है merge requests। बहुत स्पष्ट, IMHO। :)
U007D

जवाबों:


377

यदि आपके पास अपनी रिपॉजिटरी में एक कोड परिवर्तन है, और इसे लक्ष्य रिपॉजिटरी में ले जाना चाहते हैं, तो:

  • "पुश" आप लक्ष्य रिपॉजिटरी ( git push) में मौजूद परिवर्तनों के लिए मजबूर कर रहे हैं ।
  • "खींचो" लक्ष्य रिपॉजिटरी है जो आपके बदलावों को वहां मौजूद ( git pullदूसरे रेपो से) पकड़ लेता है।

एक "पुल रिक्वेस्ट" आप अपने परिवर्तनों को हथियाने के लिए लक्ष्य भंडार से अनुरोध कर रहे हैं।

एक "पुश अनुरोध" लक्ष्य रिपॉजिटरी होगा जिसमें आप अपने परिवर्तनों को आगे बढ़ाने का अनुरोध करेंगे।


21
नामकरण सम्मेलन के साथ मेरे लिए भी यह एक समस्या रही है: डी एंड यू ने इसे समझने में बहुत सरल बना दिया। यह उसी तरह से सोचने के लिए कि बैंकों में मुद्रा कैसे खरीदी / बेची जाती है।
nsuinteger

मुझे लगता है कि आपको "पुल" की अपनी परिभाषा को फिर से परिभाषित करने की आवश्यकता है, क्योंकि "लक्ष्य भंडार", "आपके परिवर्तन" के बारे में भ्रम है। शायद आप कहना चाहते हैं, कि "आपका भंडार लक्ष्य से भंडार में परिवर्तन को हथियाने"?
MrPisarik

9
मुख्य विचार यह है कि "पुश" / "पुल" शब्दावली का उपयोग उस पार्टी की पहचान करने के लिए किया जाता है जो अंतत: यह निर्णय लेती है कि क्या स्थानांतरण होता है, कि उस पार्टी का जो सूचना हस्तांतरित करती है।
जेस रिडेल

3
यह इस बात पर निर्भर करता है कि आप किससे अनुरोध कर रहे हैं, यदि यह आपकी टीम का "पुश रिक्वेस्ट" है, तो अधिक समझ में आता है, यदि यह रिमोट रिपॉजिटरी आपके बिल्कुल सही है।
A77

2
जब किसी कंपनी में केंद्रीय, निजी Git सर्वर के साथ काम करते हैं, तो आमतौर पर आप एक नई शाखा को इसमें शामिल कर सकते हैं, और एक कोड समीक्षा का अनुरोध कर सकते हैं और अपने सहकर्मियों से विलय कर सकते हैं। इसलिए इस वर्कफ़्लो के लिए "पुल अनुरोध" तकनीकी रूप से सही नहीं है, लेकिन यह सभी और जीयूआई डिजाइनरों द्वारा चुना गया शब्द है।
स्वेन

88

जब आप एक पुल अनुरोध भेजते हैं, तो आप अपने स्वयं के रेपो से कुछ परिवर्तनों को खींचने के लिए आधिकारिक रेपो मालिक से अनुरोध कर रहे हैं। 4. "मैं निवेदन करता हूं"।


2
लेकिन मालिक इसे मंजूरी देने के बाद एक मर्ज मर्ज जारी करेगा
Jervie Vitriolo

2
गिट पुल एक भ्रूण है और संयुक्त रूप से विलय होता है, इसलिए पुल का मतलब पहले से ही विलय है।
Xiong Chiamiov

37

tl; क्योंकि जब से मुझे एक धक्का देने की अनुमति नहीं है, मैं सिर्फ अच्छी तरह से रेपो मालिक से अनुरोध करूंगा ताकि वे पुल बनाने की कोशिश करें


कोड को रिपॉजिटरी में कौन धकेल सकता है?

क्या किसी को (संभवतः बुराई या अशिक्षित या अज्ञात) आने में सक्षम होना चाहिए और यहां यह कहना चाहिए कि मैंने इसे आपकी मास्टर शाखा में धकेल दिया है और आपके सभी कोड HAHAHA को गड़बड़ कर दिया है! ?

निश्चित रूप से आप नहीं चाहते कि वह ऐसा करे। डिफ़ॉल्ट रूप से एक सुरक्षा जाल सेट किया जाता है ताकि कोई भी आपके रेपो को धक्का न दे सके। आप कर सकते हैं एक सहयोगी के रूप में दूसरों के सेट है, तो वे धक्का कर सकते हैं। आप ऐसे लोगों को एक्सेस देंगे, जिन पर आप भरोसा करते हैं।

इसलिए यदि आप एक सहयोगी नहीं हैं और धक्का देने की कोशिश करते हैं, तो आपको कुछ त्रुटि मिलेगी, जो आपको अनुमति नहीं देगी।


तो अन्य डेवलपर्स रेपो को कैसे धकेल सकते हैं, उन्हें धकेलने की अनुमति नहीं दी जाती है?
आप सभी को एक्सेस नहीं दे सकते, फिर भी आप दूसरों को एक आउटलेट / एंट्री पॉइंट देना चाहते हैं, ताकि वे 'रेपो मालिक से इस कोड को रेपो में खींचने का अनुरोध' कर सकें । बस रेपो को सुलभ बनाकर, वे इसे कांटा कर सकते हैं ... अपने कांटे में अपने परिवर्तन करें।उनके बदलावों को अपने कांटे पर धकेलें । एक बार यह उनके अपने दूरस्थ रेपो में है:

वे एक बनाते हैं अपने कांटे से पुल अपस्ट्रीम और अपस्ट्रीम रेपो के मालिक (जिसे आप सीधे धक्का नहीं दे सकते हैं) तय करेंगे कि पुल अनुरोध को मर्ज किया जाए या नहीं।


इसके अलावा एक अर्ध-संबंधित प्रश्न मैं पढ़ने की सलाह देता हूं कि वास्तव में गिट पुश में क्या होता है? Git मर्ज की तरह ही एक git पुश क्यों नहीं माना जाता है?


4
उन लोगों के लिए जो यह महसूस नहीं करते हैं कि धक्का और खींच के बीच एक अनुमति अंतर है, यह जवाब बहुत मायने रखता है।
दोस्त

29

पुल अनुरोध: मैं अनुरोध करने के लिए आप के लिए खींचो मेरा।


7
मैं एक उपयोगकर्ता के रूप में इसे अपने दृष्टिकोण से देखता हूं, तो क्या यह नहीं होना चाहिए "मैं आपसे इसे आगे बढ़ाने का अनुरोध करता हूं?" I >>> You - आप संदर्भ के बिंदु को एक ही संदर्भ में दो बार बदल रहे हैं ... रथर्न की तुलना मेंI >>>> You <<<< Mine
मारिन

1
यह उत्तर सबसे अधिक समझ में आता है।
शाम

आसान peezy नींबू निचोड़
इवान Ivković

मैं आपसे निवेदन करता हूँ कि मुझे खींचो ..... कहाँ से ??? मैं समझ रहा हूं कि यह मूल परियोजना के कांटे से होगा? या एक स्थानीय प्रतिलिपि से?
कांसईरोबोट

5

मैं किसी और के रेपो के लिए कुछ धक्का देना चाहता हूं।

मुझे उस मामले के लिए धक्का (या खींचने) की अनुमति नहीं है।

स्वामी / सहयोगियों के पास अनुमतियां हैं। वे धक्का के साथ-साथ खींच सकते हैं। मैं धक्का नहीं दे सकता।

इसलिए, मैं उनसे अनुरोध करता हूं कि वे मेरी ओर से एक प्रदर्शन करें - जिसका परोक्ष रूप से मतलब यह है कि मैं उनसे अपना धक्का स्वीकार करने का अनुरोध कर रहा हूं।

तो, धक्का के लिए कोई अनुरोध नहीं। केवल एक पुल के लिए। और एक धक्का की स्वीकृति के लिए।

इसलिए, एक 'पुल' अनुरोध। और एक 'पुश' अनुरोध नहीं।


4

यह "अनुरोध" शब्द है जो इन कार्यों में महत्वपूर्ण है। आप यह भी कह सकते हैं कि "मेरा आपसे अनुरोध है कि आप अपना काम करें, क्या आप स्वीकार करते हैं?" - "एक पुल अनुरोध"।

यह पहली बार में थोड़ा भ्रमित है, लेकिन अंततः समझ में आता है।


1

इसे बेहतर समझने और इसे हमेशा के लिए याद रखने के लिए, आपको इसे देखने की जरूरत है।

एक बड़ा, जीवित वृक्ष {आपके भंडार के रूप में} चित्र। पेड़ आपके लिए एक शाखा को धक्का देने या उसमें एक नया हिस्सा जोड़ने के लिए बहुत मज़बूत है {एक नई शाखा बनाने या आप उसमें कोड डालने का प्रतीक है}, इसके बजाय आपको पेड़ को एक शाखा को ट्रंक में खींचने के लिए कहना होगा या होना चाहिए आपसे परिवर्तन।

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

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

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


0

मुझे लगता है कि यह एक मूर्खतापूर्ण शब्दावली है क्योंकि मैं यह सोचना चाहता हूं कि मैं आपको कुछ कहना चाहता हूं और इसके विपरीत नहीं सोचना चाहता कि कोई और मेरा खानदान खींच ले। इसलिए इसे PUSH REQ में बदलना चाहिए। चूंकि मैं सक्रिय हिस्सा हूं। तीर दूसरे रास्ते से जाता है जो मेरे साथ शुरू होता है न कि दूसरे छोर में नासमझ। IMHO।


0

इस तरह सोचो। स्थानीय रिपॉजिटरी बनाम रिमोट रिपॉजिटरी।

  • जब आप लोकल से पुश करते हैं । ( git push) - दूसरे शब्दों में, दूरस्थ रिपॉजिटरी आपसे (स्थानीय) कोड खींच रही है

आप कुछ निवेदन कर रहे हैं। तो, अपने आप से पूछो,

  • क्या आप दूरस्थ रिपॉजिटरी पुलिंग कोड आपसे चाहते हैं? - निवेदन।

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

मैं सिर्फ एक उदाहरण के रूप में इसका उपयोग करता हूं। बेशक, Github कोड को आगे बढ़ा सकता है। लेकिन मैं अपना उत्तर संपादित करूंगा।
जिन लिम

0

मुझे डर है कि इनमें से अधिकांश उत्तर इस प्रश्न को संबोधित करते हैं कि 'पुल अनुरोध' का क्या अर्थ है? या 'पुश रिक्वेस्ट' का क्या मतलब होगा? ओपी के सवाल के बजाय: क्यों इसे पुल अनुरोध कहा जाता है और पुश अनुरोध नहीं?

आम तौर पर इस तरह का प्रश्न-प्रतिस्थापन स्वीकार्य है, लेकिन इस मामले में यह स्पष्ट है कि ओपी इन प्रतिस्थापन प्रश्नों के उत्तर जानता है, इसलिए उनका उत्तर देना बहुत मददगार नहीं है।

केवल GitHub में लोग जो इस शब्द को गढ़ते हैं, निश्चित रूप से जानते हैं। हालाँकि यह स्पष्ट प्रतीत होता है कि यह पारिभाषिक विकल्प "बाहर से एक भंडार में आने वाले परिवर्तन" की घटना के बारे में निम्नलिखित दृष्टिकोण की तरह कुछ दर्शाता है: अनुचर कार्रवाई (पुल) करता है

हालाँकि, एक अनुरोध भी एक कार्रवाई है, और उस कार्रवाई का कर्ता अनुचर नहीं है, बल्कि प्रस्तुतकर्ता (जिसने और भी अधिक कार्रवाई की है, अर्थात् काम किया है)। इस प्रकार 'पुल अनुरोध' शब्द इस बात को लेकर भ्रम पैदा करता है कि एजेंट कौन है । अंततः एक अनुरोध की पुनरावर्ती प्रकृति के कारण भ्रम पैदा होता है: एक अनुरोध दोनों एक प्राथमिक एजेंट द्वारा एक कार्रवाई और एक दूसरे एजेंट द्वारा भविष्य की कार्रवाई के लिए एक अनुरोध है।

स्थिति अब-आम भाषाई निर्माणों के समान है, जैसे "हमने अपना घर बनाया" (जैसे कि "हमने अपने घर बनाने के लिए किसी और को भुगतान किया"), उस प्राथमिक कार्रवाई के लिए जिम्मेदारी स्पष्ट मूल एजेंट से स्थानांतरित की जाती है एक प्रबंधकीय सामाजिक भूमिका को पूरा करने वाला एक माध्यमिक एजेंट।

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

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