git - पुल अनुरोध से गिटहब क्लोन?




github pull-request (6)

मैं गिटहब से एक भंडार क्लोन करना चाहता हूं। समस्या यह है कि मैं मुख्य शाखा नहीं चाहता; मैं इस अस्वीकृत पुल अनुरोध में संस्करण चाहता हूँ।

क्या मेरे लिए मुख्य भंडार के बजाय पुल अनुरोध संस्करण क्लोन करना संभव है?


आप इस सूची में दिशानिर्देशों का पालन कर सकते हैं ताकि वे सीधे अपने भंडार और शाखा को समझने के बिना रिमोट को देख सकें।

उदाहरण उपयोग

मेरी परियोजनाओं में से एक के लिए (github3.py) मेरे पास मेरे github3.py/.git/config में निम्न है

[remote "github"]
    fetch = +refs/heads/*:refs/remotes/github/*
    fetch = +refs/pull/*/head:refs/remotes/github/pr/*
    url = [email protected]:sigmavirus24/github3.py

पहली पंक्ति यह है कि अपवाद के साथ प्रत्येक रिमोट के लिए मानक क्या है कि github को रिमोट के नाम से बदल दिया गया है। इसका अर्थ यह है कि रिमोट हेड (या उस सर्वर पर शाखाओं के प्रमुख) को github/ द्वारा github/ स्थानीय रिमोट्स में "मैप किया गया" है। तो अगर मैंने git fetch github और git fetch github पर एक शाखा थी जिसे मेरी मशीन पर पहले से ही स्थानीय रूप से नहीं देखा गया था, तो यह शाखा डाउनलोड करेगा और मैं इसे इस तरह स्विच कर सकता हूं: git checkout -t github/branch_name

दूसरी पंक्ति एक ही चीज करता है, लेकिन यह मानक गिट शाखाओं के बजाय पुल अनुरोधों के लिए करता है। यही कारण है कि आप refs/pull/*/head । यह गिटहब पर प्रत्येक पुल अनुरोध के सिर को लाता है और इसे github/pr/# पर मानचित्र करता है। तो फिर अगर कोई पुल अनुरोध भेजता है और उसे 62 (उदाहरण के लिए) गिना जाता है, तो आप करेंगे:

git fetch github
git checkout -t github/pr/62

और फिर आप pr/62 नामक एक स्थानीय शाखा में होंगे (मान लीजिए कि यह पहले से मौजूद नहीं है)। यह अच्छा है और इसका मतलब है कि आपको अन्य लोगों के रिमोट या शाखाओं का ट्रैक रखने की आवश्यकता नहीं है।


आप git clone कमांड में -b विकल्प का उपयोग करके इच्छित शाखा को क्लोन कर सकते हैं।

आपके मामले में, जिस शाखा को आप क्लोन करना चाहते हैं वह पुल अनुरोध (फीचर / मोंगोज़-सपोर्ट) की स्रोत शाखा है:

git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone

जब कोई उपयोगकर्ता पुल अनुरोध सबमिट करता है, तो वे किसी भी फोर्क के क्लोन पर किसी अन्य उपयोगकर्ता के भंडार में किसी शाखा से विलय करने के लिए कुछ बदलाव मांग रहे हैं।

आपके द्वारा किए गए परिवर्तन पुल अनुरोध के स्रोत से प्राप्त किए जा सकते हैं। ऐसा करने के लिए, उपयोगकर्ता के भंडार को क्लोन करें ( git://github.com/berstend/frappe.git ), और उसके बाद उस शाखा को चेक करें जिसे उसने पुल अनुरोध बनाया है ( feature/mongoose-support )।


वह पुल अनुरोध उस व्यक्ति के कांटा से काम करता है ताकि आप देख सकें कि वह feature/mongoose-support शाखा से अपने बदलावों को feature/mongoose-support

आप उसकी रिपोजिटरी क्लोन कर सकते हैं और उस शाखा को चेकआउट कर सकते हैं


git clone git://github.com/dweldon/frappe
cd frappe
git pull origin pull/2/head

मैं उस शाखा के लिए एक अनमोल पुल अनुरोध कैसे प्राप्त कर सकता हूं जिसका मेरा स्वामित्व नहीं है?


git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCH

उदाहरण के लिए:

$ git fetch origin pull/611/head:pull_611
$ git checkout pull_611

परिवर्तन करें, उन्हें प्रतिबद्ध करें, पुश करें और गिटहब पर अपने फोर्क से नया पीआर खोलें







pull-request