2016-07-28 11 views
6

मैं एक GitHub भंडार अलग किया गया है, एक प्रतिबद्ध (शीर्षक Some small changes) बना एक पुल का अनुरोध प्रस्तुत है और यह मुख्य भंडार (प्रतिबद्ध शीर्षक Some small changes (#12), जहां #12 पुल अनुरोध नंबर में विलय कर दिया गया)। अब तक सब ठीक है.Github: पुल अनुरोध के बाद कांटा साफ अप

अब, जब मैं अपना कांटा अपडेट करना चाहता हूं (git rebase upstream/master, here देखें), मेरे पास यह रिपॉजिटरी में दो बार प्रतिबद्ध है। सबसे पहले Some small changes और फिर Some small changes (#12) के रूप में। यदि मैं एक नया पुल अनुरोध बनाता हूं, तो Some small changes प्रतिबद्धता को फिर से पुल अनुरोध में जोड़ा जाता है।

वहाँ इस समस्या के समाधान के लिए दो तरीके हैं:

  1. स्वच्छ मेरे कांटा, देख this answer
  2. मर्ज सभी एक में करता है, देखते हैं this answer

दोनों मामलों अपने इतिहास को फिर से लिखने शामिल और मजबूर करने के लिए। पुल अनुरोध करते समय अपने कांटा को सिंक में रखने का कोई बेहतर तरीका है?

उत्तर

5

हां। मुझे लगता है कि ऐसा करने के कुछ तरीके हैं लेकिन मैं यही करता हूं।

तो आप github पर एक संग्रह में योगदान देना चाहते हैं, इसे upstream पर कॉल करने दें।

जिथब पर, आप upstream भंडार को फोर्क करेंगे। आइए इसे origin पर कॉल करें।

फिर अपनी विकास मशीन पर आप origin क्लोन करेंगे ताकि आप कोड पर काम कर सकें। आइए इसे local पर कॉल करें। जब आप इस भंडार को क्लोन करते हैं, तो आपके पास पहले से ही origin रिमोट रिपोजिटरी के रूप में स्थापित हो सकता है। आपको रिमोट रिपोजिटरी के रूप में upstream भंडार जोड़ने की भी आवश्यकता होगी।

फिर जब आप कोई परिवर्तन करना चाहते हैं, तो master शाखा पर यह परिवर्तन न करें। इसके बजाय अपने परिवर्तनों के लिए एक नई शाखा बनाएं। यानी fix-issue-101

एक बार जब आप परिवर्तन किए हैं के साथ खुश हैं, तो आप origin भंडार को local रिपोजिटरी से अपने परिवर्तनों को पुश करने के लिए चाहते हैं। अब आप upstream पर शाखा से पर master शाखा upstream पर upstream पर पुल अनुरोध बना सकते हैं।

आप local और origin पर शाखाएं बनाना जारी रख सकते हैं, जबकि आप पुल अनुरोध स्वीकार करने की प्रतीक्षा करते हैं, और इसलिए अतिरिक्त पुल अनुरोध बनाएं।

masterupstream पर परिवर्तन होता है तो, यानी आपके पुल का अनुरोध स्वीकार कर लिया गया है, तो आप local पर master करने के लिए upstream पर master से खींच जाएगा। फिर आप local पर master पर origin पर दबाएं। ऐसा करने के बाद, सभी रिपॉजिटरीज़ की master शाखाएं सिंक हो जाएंगी।

मुझे उम्मीद है कि मैंने इसे एक समझदार मनोर में लिखा है। यदि प्रश्न पूछने में संकोच न करें और मैं तदनुसार अपडेट करूंगा।

+0

आपको बहुत बहुत धन्यवाद, उत्तर काफी स्पष्ट है और मैंने पहले इस्तेमाल किए गए एक से बेहतर दृष्टिकोण है। –

+0

यह एक अच्छा जवाब है, स्पष्ट है और मूल और अपस्ट्रीम, स्थानीय शब्दावली के ज्ञान को नहीं मानता है। – Fernando

+0

प्लस, गिटहब चलो पुल अनुरोध विलय हो जाने के बाद आप रिमोट शाखा को एक क्लिक के साथ हटा दें। एक बार विलय होने के बाद पुल अनुरोध पृष्ठ के नीचे "शाखा हटाएं" बटन दिखाई देगा। –

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