अनुरोध अनुरोध को मर्ज करने का अनुरोध करें


466

पुल अनुरोध और मर्ज अनुरोध के बीच क्या अंतर है।

Github में यह एक निवेदन है और उदाहरण के लिए GitLab में, यह एक मर्ज अनुरोध है ... क्या इन दोनों में कोई अंतर है?

जवाबों:


763

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

GitLab का एक लेख फीचर के नामकरण में अंतर पर चर्चा करता है:

मग या पुल अनुरोध एक गिट प्रबंधन अनुप्रयोग में बनाए जाते हैं और एक निर्दिष्ट व्यक्ति को दो शाखाओं को मर्ज करने के लिए कहते हैं। GitHub और Bitbucket जैसे उपकरण नाम पुल अनुरोध का चयन करते हैं क्योंकि पहली मैन्युअल कार्रवाई सुविधा शाखा को खींचने के लिए होगी। GitLab और Gitorious जैसे उपकरण नाम मर्ज अनुरोध का चयन करते हैं क्योंकि यह अंतिम क्रिया है जो असाइनमेंट के लिए अनुरोध की जाती है। इस लेख में हम उन्हें मर्ज अनुरोध के रूप में संदर्भित करेंगे।

एक "मर्ज अनुरोध" git mergeकमांड के साथ भ्रमित नहीं होना चाहिए । न तो "पुल अनुरोध" को git pullकमांड के साथ भ्रमित किया जाना चाहिए । दोनों gitआदेशों को पुल अनुरोधों और मर्ज अनुरोधों में पर्दे के पीछे उपयोग किया जाता है, लेकिन मर्ज / पुल अनुरोध केवल इन दो आदेशों की तुलना में बहुत व्यापक विषय को संदर्भित करता है।


1
जब पुल अनुरोध किया जाता है तो क्या GitHub एक मध्यवर्ती / अस्थायी शाखा (अदृश्य) बनाता है?
रॉबर्ट कोरिटनिक

1
क्या हम उन्हें एक्सेस कर सकते हैं? क्या वे वास्तव में केवल पढ़े जाते हैं क्योंकि हम उन पर टकराव को हल कर सकते हैं?
रॉबर्ट कोरिटनिक

11
मैं क्या खो रहा हूँ? खींच = लाना + मर्ज। यदि अंतिम क्रिया को मर्ज किया जाता है, तो पहली कार्रवाई को प्राप्त करना होगा।
व्येनतिस बिवाइनेस

59
एमआर चारों ओर सिर्फ बेहतर नाम है। पुल रिक्वेस्ट ने मुझे कभी भी इससे कोई मतलब नहीं हुआ कि मैंने इसकी पहली कार्रवाई पढ़ी है, जबकि मैंने समझा कि मर्ज रिक्वेस्ट का मतलब यह है कि मैंने इसे पहली बार पढ़ा था। "नमस्ते, क्या आप कृपया इस कोड को मास्टर शाखा में विलय कर सकते हैं?" बनाम "हैलो, क्या आप इस कोड को अदृश्य शाखा के लिए खींच सकते हैं <निहित विलय>" - यहां एक स्पष्ट विजेता है।
ग्रैनिटोसॉरस

7
@ ग्रानिटोसॉरस सहमत। शुरुआत करने के लिए, पुल अनुरोधों बिल्कुल नहीं थे जो मैं उन्हें होने की उम्मीद थी। जब मैंने Gitlab का उपयोग करना शुरू किया, तो मर्ज अनुरोधों ने तुरंत ही समझ बना ली।
मार्क ल्योन

54

वे एक ही विशेषता हैं

मग या पुल अनुरोध एक गिट प्रबंधन अनुप्रयोग में बनाए जाते हैं और एक निर्दिष्ट व्यक्ति को दो शाखाओं को मर्ज करने के लिए कहते हैं। GitHub और Bitbucket जैसे उपकरण नाम पुल अनुरोध का चयन करते हैं क्योंकि पहली मैन्युअल कार्रवाई सुविधा शाखा को खींचने के लिए होगी। GitLab और Gitorious जैसे उपकरण नाम मर्ज अनुरोध का चयन करते हैं क्योंकि यह अंतिम क्रिया है जो असाइनमेंट के लिए अनुरोध की जाती है। इस लेख में हम उन्हें मर्ज अनुरोध के रूप में संदर्भित करेंगे।

- https://about.gitlab.com/2014/09/29/gitlab-flow/


विलय करने वाले की जिम्मेदारी उस डेवलपर की नहीं होनी चाहिए जो एक नई सुविधा जोड़ रहा है? अगर कोई डेवलपर A फीचर_ब्रांच में कोई विशेषता जोड़ता है, तो उसे मास्टर ब्रांच ले लेनी चाहिए और अपनी ब्रांच के मर्ज को सभी विवादों को हल करने और मर्ज अनुरोध बनाने से पहले इसका परीक्षण करना चाहिए?
३:३० बजे Ciasto piekarz

2
हां, लेकिन अभी भी एक तेजी से आगे विलय है कि किसी को मास्टर पर कोड प्राप्त करने के लिए उसके बाद किया जाना है। और वास्तव में मुझे लगता है कि फुल टाइम देवों की एक टीम पर यह शायद सबसे अच्छा है अगर फीचर का डेवलपर भी उतना ही मर्ज करता है, लेकिन यह उनके लिए उपयोगी हो सकता है कि वे किसी को पहले अपने पीआर की समीक्षा करने के लिए इंतजार करें।
bdsl

21

मेरे विचार में, उनका मतलब एक ही गतिविधि से है लेकिन विभिन्न दृष्टिकोणों से:

उस बारे में सोचें, ऐलिस रिपॉजिटरी ए पर कुछ काम करता है, जो बॉब के रिपॉजिटरी बी से लिया गया था।

जब ऐलिस बी में उसके परिवर्तनों को "मर्ज" करना चाहती है, तो वह वास्तव में बॉब को ए से इन परिवर्तनों को "खींच" करना चाहती है।

इसलिए, ऐलिस के दृष्टिकोण से, यह एक "मर्ज अनुरोध" है, जबकि बॉब इसे "पुल अनुरोध" मानते हैं।


यह मुझे उदाहरण की याद दिलाता है जब मैंने अन्य सहयोगियों को यह बताने के लिए छोटी रिपोर्ट बनाई थी कि कैसे काम करता है।
रवि यादव

4

संघर्ष प्रबंधन के संदर्भ में एक सूक्ष्म अंतर है। संघर्षों के मामले में, गितुब में एक पुल अनुरोध के परिणामस्वरूप गंतव्य शाखा पर एक मर्ज कम हो जाएगा । गिटलैब में, जब एक संघर्ष पाया जाता है, तो किए गए संशोधन स्रोत पर एक मर्ज कमिट पर होंगे शाखा ।

Https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflic.html.html देखें

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


3

GitLab 12.1 (जुलाई 2019) एक अंतर का परिचय देता है:

" गोपनीय मुद्दों के लिए आग्रह करें "

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

https://about.gitlab.com/images/12_1/mr-confidential.png

12.1 के रूप में, गोपनीय प्रोजेक्ट मर्ज अनुरोध अनुरोध का उपयोग करके किसी सुव्यवस्थित वर्कफ़्लो के भीतर किसी सार्वजनिक प्रोजेक्ट में गोपनीय मुद्दों को हल करना अब संभव है, जो आपको प्रोजेक्ट के निजी कांटे में मर्ज अनुरोध बनाने में मदद करता है।

58583 अंक से " गोपनीय मुद्दे " देखें ।

गिटहब में एक समान विशेषता मौजूद है, लेकिन इसमें एक विशेष निजी कांटा का निर्माण शामिल है, जिसे " अनुरक्षक सुरक्षा सलाहकार " कहा जाता है ।


0

जैसा कि पिछले उत्तरों में बताया गया है, दोनों लगभग एक ही उद्देश्य से काम करते हैं। व्यक्तिगत रूप से मुझे गिट रिबेस और मर्ज अनुरोध पसंद है (जैसे गिटलैब में)। यह समीक्षक / अनुरक्षक का बोझ उठाता है, यह सुनिश्चित करता है कि मर्ज अनुरोध जोड़ते समय, सुविधा शाखा में मुख्य शाखा पर किए गए सभी नवीनतम आवागमन शामिल हैं, जो सुविधा शाखा बनने के बाद करते हैं। यहाँ रिबेस को विस्तार से समझाने वाला एक बहुत ही उपयोगी लेख है: https://git-scm.com/book/en/v2/Git-Branching-Rebasing

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