git - अन्य कांटे से मेरे कांटे में अनमोल अपस्ट्रीम पुल अनुरोध कैसे लागू करें?




github pull-request (4)

अद्यतन: वेबपेज के माध्यम से

आप इसे github वेबपृष्ठ के माध्यम से भी कर सकते हैं।

मुझे लगता है कि, आपके पास आम रेपो ( BaseRepo ) का पहले से ही एक कांटा ( MyFork ) होना चाहिए जिसमें आपकी रुचि रखने वाले फोर्क ( OtherFork ) से लंबित पुल अनुरोध हो।

  1. कांटा (अन्य OtherFork ) पर नेविगेट करें जिसने पुल अनुरोध शुरू किया है जिसे आप अपने फोर्क ( MyFork ) में प्राप्त करना चाहते हैं।
  2. अन्य OtherFork के पुल अनुरोध पृष्ठ पर OtherFork
  3. नए पुल अनुरोध पर क्लिक करें
  4. लंबित पुल अनुरोध (ओं) की पेशकश की जानी चाहिए। उचित अन्य OtherFork शाखा भी चुनना याद रखें। बाएं तरफ का चयन करें क्योंकि बेस फोर्क आपके फोर्क ( MyFork ) ( महत्वपूर्ण )।
  5. अब View pull request का विकल्प View pull request Create pull request बदलना चाहिए। इसे क्लिक करें।

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

गिटहब पर एक प्रोजेक्ट जिसमें मेरे पास कांटा है, के पास एक नया पुल अनुरोध है कि मैं अपने कांटे में खींचना चाहता हूं जिसे लेखक ने अभी तक नहीं खींचा है।

क्या मेरे कांटे में अन्य कांटे से पुल अनुरोध लागू करने का कोई आसान तरीका है? क्या यहां कुछ और है जो मुझे याद आ रही है?


आप इसे मैन्युअल रूप से आसानी से कर सकते हैं:

  • अपने रेपो के रिमोट के रूप में अन्य कांटा जोड़ें:

    git remote add otherfork git://github.com/request-author/project.git
    
  • अपने रेपो की प्रतिबद्धता लाओ

    git fetch otherfork
    
  • पुल अनुरोध लागू करने के लिए आपके पास दो विकल्प हैं (यदि आप 1 चुनना नहीं चाहते हैं)

    1. यदि आपको मूल और पुल अनुरोध के बीच जोड़े गए अंतिम कामों को लागू करने की परवाह नहीं है, तो आप उस शाखा को फिर से दबा सकते हैं जिस पर पुल अनुरोध बनाया गया था

      git rebase master otherfork/pullrequest-branch
      
    2. यदि आप केवल पुल अनुरोध में काम करना चाहते हैं, तो उनके SHA1 की पहचान करें और करें

      git cherry-pick <first-SHA1> <second-SHA1> <etc.>
      

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

चरण 1:

git remote add upstream <url>

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

चरण 2:

git pull upstream refs/pull/{id}/head

... जहां {id} पुल अनुरोध संख्या है। अगर आप चरण 1 का पालन करते हैं तो अपस्ट्रीम रिमोट का नाम खींचने के लिए है, यानी बस "अपस्ट्रीम"। यह एक यूआरएल भी हो सकता है, इस मामले में आप चरण 1 छोड़ सकते हैं।

चरण 3:

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

Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions

मेरे लिए काम करने वाली कुछ और विस्तृत जानकारी।

फोर्कड रेपो के लिए मेरी .git / config फ़ाइल इस तरह दिखती है:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = false
[remote "origin"]
        url = [email protected]:litzinger/angular-carousel.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
        rebase = true
[remote "source"]
        url = git://github.com/revolunet/angular-carousel.git
        fetch = +refs/heads/*:refs/remotes/source/*
        fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

फिर "गिट फ़ेच स्रोत" चलाएं, जो तब फोर्कड रेपो से सभी पुल अनुरोध सूचीबद्ध करता है।

 * [new ref]         refs/pull/54/head -> origin/pr/54
 * [new ref]         refs/pull/67/head -> origin/pr/67
 * [new ref]         refs/pull/69/head -> origin/pr/69
 * [new ref]         refs/pull/71/head -> origin/pr/71

और उसके बाद एक विशिष्ट पुल अनुरोध में विलय करने के लिए "गिट मर्ज मास्टर मूल / पीआर / 67"





pull-request