2010-04-08 15 views
8

मैं एक इस परिदृश्य पर हैGit शाखाओं/रिबेसिंग अच्छी प्रथाओं

3 शाखाओं:
- मास्टर
- MyBranch प्रणाली
की एक नई सुविधा विकसित करने के उद्देश्य के लिए मास्टर बंद branched - MyBranchLocal बंद branched शाखा की मेरी स्थानीय प्रति के रूप में MyBranch

माइब्रांच को अन्य डेवलपर्स (जो कि मैं वही सुविधा पर काम कर रहा हूं) के खिलाफ दबाने और धक्का दिया जा रहा है।

माईब्रैंच शाखा के मालिक के रूप में मैं इसे रीबेज करके मास्टर के साथ सिंक में रखना चाहता हूं। मुझे MyBranchLocal में MyBranch के साथ किए गए परिवर्तनों को मर्ज करने की भी आवश्यकता है।

ऐसा करने का एक अच्छा तरीका क्या है?

संभव परिदृश्यों की युगल मैं अब तक की कोशिश की:

मैं
1. MyBranch
साथ 4. मर्ज MyBranch के खिलाफ 2. रिबेस MyBranch मास्टर के खिलाफ MyBranchLocal
करने के लिए परिवर्तन प्रतिबद्ध
3. रिबेस MyBranchLocal MyBranchLocal

II।
1. MyBranchLocal
साथ MyBranchLocal
2. मर्ज MyBranch करने के लिए परिवर्तन प्रतिबद्ध MyBranch

III के खिलाफ 3. रिबेस MyBranch मास्टर
4. रिबेस MyBranchLocal के खिलाफ।
1. परिवर्तन MyBranchLocal
2. रिबेस MyBranch के मास्टर के खिलाफ MyBranchLocal साथ
3. मर्ज MyBranch प्रतिबद्ध
4. रिबेस MyBranchLocal MyBranch

के खिलाफ मैं पहले से ही उस परिदृश्य III इतिहास प्रतिबद्ध खिलवाड़ किया जा रहा है पता बहुत, संभवतः डुप्लीकेटिंग काम करता है।

आपका अनुभव क्या है? विलय करने के प्रयास को कम करने और इतिहास को साफ रखने के लिए आप किन परिदृश्यों की सिफारिश करते हैं?

उत्तर

4

मेरा व्यक्तिगत सुझाव। यह एक सीधा प्रतिबद्ध इतिहास रखने पर केंद्रित है, और "अधिक विशिष्ट" शाखाओं में विफल रहा है (आप फीचर शाखा की तुलना में अपनी स्थानीय शाखा को बेहतर तरीके से गड़बड़ कर देंगे)।मास्टर के खिलाफ MyBranch = स्थानीय

  • रिबेस MyBranch
    1. (वैकल्पिक) मर्ज -

      1. MyBranch
      2. मर्ज MyBranch के खिलाफ MyBranchLocal
      3. करने के लिए परिवर्तन प्रतिबद्ध
      4. रिबेस MyBranchLocal MyBranchLocal साथ (तेजी से आगे होना चाहिए) MyBranch के साथ मास्टर (भी तेजी से आगे होना चाहिए)
    2. MyBranchLocal MyBranch के खिलाफ रीबेज
  • 4

    मुझे Linus email से लिंक के बाद यह प्रश्न मिला। ईमेल के मुताबिक - कुछ सार्वजनिक साइट पर अपना इतिहास प्रकाशित करने के बाद आपको रीबेज नहीं करना चाहिए, क्योंकि आप अन्य लोगों के इतिहास को नष्ट कर सकते हैं। तो, MyBranchLocal के लिए रीबेस ठीक है, लेकिन MyBranch (अन्य डेवलपर्स के साथ साझा) के लिए नहीं है।

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