2015-06-26 6 views
16

मैं कमांड लाइन पर अन्य योगदानकर्ताओं के लिए विलय विवादों को ठीक कर रहा हूं। अभी भी सीख कैसे Git यहाँ काम करता है, तो मेरे साथ सहन ...गिटहब में पुल अनुरोध नहीं दिखाता है कि मर्ज विवाद ठीक हो गया है और यह मेरी प्रतिबद्धता नहीं दिखाता

तो जैसा

...

git checkout -b otherusersbranch master 
git pull https://github.com/otheruser/myrepo.git otherusersbranch 

.... जब मर्ज संघर्ष दिखाई देता है खोजने के लिए और संघर्ष

git add . 
git commit -m "fixing merge conflicts" 
git push origin otherusersbranch 
git checkout master 
git merge --no-ff otherusersbranch 
git push origin master 

तय कमांड लाइन से ठीक किया गया है, मैं सामान्य रूप से योगदानकर्ता की शाखा में परिवर्तन को दबा रहा हूं। हालांकि, पुल अनुरोध में विलय संघर्ष संकेतक अपरिवर्तित बनी हुई है और मैं पुल अनुरोध में अपनी प्रतिबद्धता नहीं देख सकता। मैं क्या गलत कर रहा हूं?

+3

उत्पत्ति क्या रेपो करता है? क्या आप वाकई उपयोगकर्ताओं के कांटे में निश्चित संघर्ष को दबा रहे हैं? अगर मैं गलत नहीं हूं तो आप मर्ज किए गए फ़ाइलों को मूल रेपो में दबा रहे हैं। –

+0

आपको उन उपयोगकर्ताओं के रेपो को पुल अनुरोध जमा करने की आवश्यकता है। अन्यथा आपको अपने रेपो में योगदानकर्ता बनाने की जरूरत है ताकि आप सीधे अपने रेपो को धक्का दे सकें। – uday

+0

क्या आप कंसोल आउटपुट पोस्ट करते हैं जब आप 'git push origin otherusersbranch' कमांड चलाते हैं? – Mike

उत्तर

5

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

जो आपने वर्णित किया है, उससे आप केवल अपनी शाखा में परिवर्तन को दबा रहे हैं, यही कारण है कि यह प्रतिबद्ध इतिहास में दिखाई नहीं दे रहा है।

2

मान लिया जाये कि आप otheruser शाखा पर हैं, तो आप सिर्फ अपने साथी खींच सकता है कर

git pull https://github.com/otheruser/myrepo.git otherusersbranch 

तो मर्ज संघर्ष का समाधान द्वारा बदल जाता है, को जोड़ने के अपने प्रतिबद्ध और अपने रिमोट को यह धक्का। आप अपने परिवर्तनों को अपने मित्र की शाखा में तब तक नहीं दबा सकते जब तक कि उसने आपको सही पहुंच नहीं दी है।

आदर्श रूप से, आप चाहते हैं कि वह केंद्रीय परिवर्तनों में अपने परिवर्तनों को धक्का दे, जहां आप दोनों ही ला सकते हैं और काम कर सकते हैं, आप अपनी प्रतिबद्धता को उसके शीर्ष पर लागू करते हैं और पुल अनुरोध भेजते हैं।

1

आप सीधे अपने योगदान की शाखा के लिए धक्का कर सकते हैं (मैं इस धारणा से हो रही है जो कि https://github.com/otheruser/myrepo.git अपने कांटा और origin है अपने योगदानकर्ता), तो कारण संपादन करने के लिए अपने कांटा से पुल अनुरोध में दिखाई नहीं दे रहे मूल यह है कि आप सीधे परिवर्तन को दबा रहे हैं, इस प्रकार पुल अनुरोध प्रक्रिया को बाधित कर रहे हैं।

व्याख्या करने के लिए: जब आप अपने मित्र का कांटा के खिलाफ अपने कांटा से एक पुल अनुरोध को खोलने और वे इसे विलय, कि बराबर करने के लिए अपने

git fetch <your-fork> master 
git merge <your-fork>/master 

या

git pull <your-fork> master 

द्वारा पीछा किया हो रही है

git push <their-fork> master 

आप बस आगे बढ़ो और <their-fork> करने के लिए धक्का तो , जो इस मामले में मूल है, तो आप अनिवार्य रूप से पहले से ही किया है कि पुल अनुरोध क्या किया होगा। इसके अतिरिक्त, जब आप विलय विवादों को ठीक करने के बाद <your-fork> के बजाय <their-fork> पर धकेलते हैं, तो जिथब पुल अनुरोध में पहले जैसा ही विलय विवादों को देखता है क्योंकि <your-fork> अपडेट नहीं किया गया है, इसलिए अब आप "निश्चित" संस्करण के खिलाफ विवाद विलय कर चुके हैं। जब पीआर प्रक्रिया को रोक दिया जाता है, तो गिट को कोई जानकारी नहीं है, लेकिन हब बहुत भ्रमित हो जाता है (पुल अनुरोध पूरी तरह से गीथब-आधारित - गिट में "पुल अनुरोध" में कोई अवधारणा नहीं है)।

इसे ठीक करने का सबसे आसान तरीका केवल ओपन पीआर को बंद करना है, क्योंकि आपने इसे वैसे भी विलय कर दिया है। हालांकि, अगर आप पुल अनुरोध कार्यप्रवाह सुरक्षित रखना चाहते हैं, तो आपको अपने मित्र मास्टर शाखा हड़पने सकता है, इससे पहले कि आप इसे करने के लिए धक्का दिया एक

git reset --hard 

करते हैं, और उसके बाद

git checkout -b tmp 
git cherry-pick otheruserbranch <list-of-commits-you-made> 
git checkout master 
git merge tmp 
git push <your-fork> master 

जो अपने पीआर मिलेगा पीछे की तरह आप इसे करना चाहते हैं (तुम वहाँ कुछ समायोजन करने के लिए हो सकता है, मैं अपनी शाखा संरचना पर सुपर स्पष्ट नहीं कर रहा हूँ, लेकिन यह सार है)

नोट: ०१२३३४०५५४३ पर दस्तावेजीकरण के लिए देखो , और सुनिश्चित करें कि आप इसका उपयोग करने से पहले हार्ड रीसेट के परिणामों को समझते हैं।

संबंधित मुद्दे