2012-05-22 22 views
9

मैं अपनी परियोजनाओं के लिए गिट-फ्लो का उपयोग कर रहा हूं, और विकास शाखा में बदलावों का एक जटिल सेट शुरू कर दिया है, जो मुझे पहले की तुलना में अधिक समय लगता है।विकास शाखा में किए गए संशोधनों को एक नई गिट-फ्लो फीचर शाखा में ले जाएं?

मेरी इच्छा है कि मैंने इसे एक फीचर शाखा में किया है, क्योंकि मैं अन्य परिवर्तनों के साथ एक नई रिलीज करना चाहता हूं। मैं इन असामान्य परिवर्तनों को एक नई गिट-फ्लो सुविधा शाखा में कैसे स्थानांतरित कर सकता हूं?

git checkout where-you-should-have-made-your-feature-branch 
git branch feature-branch 
git checkout feature-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in chronological order 
    git cherry-pick commit 

अब यह है कि क्या आप है पर निर्भर करता है पहले से ही एक सार्वजनिक भंडार है या नहीं करने के लिए अपने को विकसित शाखा धकेल दिया:

उत्तर

17

आप कोई हुई है तो करता

आप बस, एक गंदा काम कर प्रतिलिपि है, तो बस अभिनय की तरह आप के बारे में एक नई सुविधा शुरू करने के लिए कर रहे हैं:

git flow feature start awesomeness 
git commit -va 

यदि आप किया कुछ काम करता है

यदि आपकी सुविधा शाखा में विकसित होना चाहिए तो उपरोक्त सेंट ईपीएस एक ही हैं। इसके अलावा, हालांकि आप करेंगे में (संभवतः - यह आवश्यक नहीं है) अपने को विकसित शाखा जहां यह था इससे पहले कि आप अपनी सुविधा शाखा के लिए परिवर्तन, जो आप के साथ क्या कर सकते हैं करने से शुरू करने के लिए वापस रीसेट करना चाहते:

git flow feature start awesomeness 
git commit -va 
git checkout develop 
git reset origin/develop --hard 
+0

मुझे नहीं पता था कि असाइन किए गए परिवर्तनों के बाद सुविधा शुरू की जा सकती है। धन्यवाद! – plang

2

यहाँ एक तरह से यह करने के लिए है। यदि सब कुछ अभी भी निजी है, और आप इतिहास को फिर से लिखने के लिए चाहते हैं:

git checkout develop-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in reverse chronological order 
    git rebase --onto commit~1 commit develop-branch 

आप इतिहास के पुनर्लेखन के लिए नहीं करना चाहते हैं: कि यह करना चाहिए

git checkout develop-branch 
foreach commit in commits-that-should-have-been-on-your-feature-branch: 
    # do this for each commit in reverse chronological order 
    git revert commit 

और।

+0

Git एक लूप में rebase थोड़ा अनावश्यक/बेकार लगता है - वहाँ क्या विचार है? – AD7six

+0

हाय, आपके उत्तर के लिए धन्यवाद, लेकिन अभी तक कुछ भी नहीं किया गया है। समाधान उससे आसान था। – plang