2011-04-14 10 views
39

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

  1. मूल कोड अपडेट होने के कारण अपने सार्वजनिक रेपो से नए एंड्रॉइड पोर्ट में परिवर्तन खींचने में सक्षम हो।
  2. ऑर्गेनिक प्रोजेक्ट में परिवर्तन (खींचने के अनुरोधों के माध्यम से) को कम करने में सक्षम होने पर मैं उन बग को ठीक करता हूं जो एंड्रॉइड पोर्ट पर लागू नहीं होते हैं।
  3. इस परियोजना का एक अलग नामित संस्करण है ताकि यह स्पष्ट हो सके कि यह एक एंड्रॉइड पोर्ट है। मैंने एक कांटा नाम बदलने पर देखा और गीथूब ने मुझे ऐसा करने के बारे में बड़ी चेतावनी दी।

    original-author/projectA 
    nicstrong/projectA 
    nicstrong/projectA-android 
    

    यह मैं अपने स्थानीय रेपो स्थानीय/projectA- पर काम करने की अनुमति होगी:

मेरे प्रारंभिक विचार मैं मूल परियोजना तो कांटा कांटा और मेरे कांटा नाम बदलने मेरा पीछा रेपोस देने के लिए चाहते हैं एंड्रॉइड पुश nicstrong/projectA-android में बदल जाता है। फिर मूल परियोजना से अपडेट करने के लिए मैं मूल लेखक/प्रोजेक्ट ए से नवीनतम में निकस्टोंग/प्रोजेक्ट ए को रीबेस कर सकता हूं, फिर निकस्टोंग/प्रोजेक्ट ए से स्थानीय/प्रोजेक्ट ए-एंड्रॉइड में लाता/विलय कर सकता हूं।

मेरे प्रश्न हैं:

  1. मैं काफी पूरे Git बात करने के लिए नया हूँ। क्या यह एक अच्छा दृष्टिकोण जैसा प्रतीत होता है? या क्या इस scenerio को संभालने के लिए एक बेहतर वर्कफ़्लो है?
  2. मैं प्रोजेक्ट ए-एंड्रॉइड से निक्रॉन्ग/प्रोजेक्ट ए पर पुशिंग कैसे संभालेंगे, इसलिए मैं मूल प्रोजेक्ट के लिए पुल अनुरोध सेट कर सकता हूं?

उत्तर

17

1/हाँ, वह सबसे सुरक्षित तरीका लगता है, किसी भी संशोधन के रूप में आप अंत nicstrong/projectA में बैक-पोर्टिंग original-author/projectA रूप में एक ही संरचना के साथ एक परियोजना में हो जाएगा।
इसका मतलब है कि पुल अनुरोध व्यवस्थित करना आसान होगा, क्योंकि आप मूल लेखक की परियोजना को मिरर करने वाली परियोजना में होंगे।

2/आप बड़े पैमाने पर रिफैक्टरिंग nicstrong/projectA-android में चल रही है, तो मैं एक backport शाखा बनाना होगा, ध्यान से विलय या चेरी लेने तुम क्या backport शाखा में कई परिवर्तन से की जरूरत है, और फिर nicstrong/projectA है कि शाखा धक्का।
(जिसका अर्थ है आप nicstrong/projectA-android के एक दूरदराज के रूप में nicstrong/projectA जोड़ लिया है)

+2

एकाधिक फोर्क आवश्यक बनाने के लिए, मैंने इस पोस्ट में वर्णित तकनीक का उपयोग किया: http://adrianshort.org/2011/11/08/create-multiple-forks-of-a-github-repo/ – dbasch

+1

@dbasch सच है, लेकिन यह एक सच्चा कांटा नहीं होगा, इसमें एक दूसरे "कांटा" से मूल रेपो में कोई पुल अनुरोध नहीं होगा। – VonC

+0

मैं मूल रेपो को पुल अनुरोधों के लिए प्रोजेक्ट ए रिपोजिटरी का उपयोग करूंगा। प्रोजेक्ट ए-एंड्रॉइड/बैकपोर्ट में परिवर्तन मैन्युअल रूप से प्रोजेक्ट ए में विलय हो जाएंगे। क्या यह एक अच्छी रणनीति है? – dbasch

3

एक Git भंडार के नाम भारी दूरदराज के नाम पर निर्भर है। आगे बढ़ें और इसे क्लोन करें, फिर बस एक नया रिमोट जोड़ें (एक अलग नाम से) और वहां धक्का शुरू करें। उस बिंदु पर, निश्चित रूप से, आप आगे बढ़ सकते हैं और बिना किसी समस्या के प्रोजेक्ट निर्देशिका का नाम बदल सकते हैं।

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