एक तरीका है कि आप अपनी सुविधा को अस्थायी रूप से हटा सकते हैं जो आपके गिट रेपो इतिहास को पूर्ववत करता है वह सुविधा को हटा देता है जो सुविधा को हटा देता है। फिर जब आप सुविधा को वापस जोड़ना चाहते हैं, तो बस revert the commit जो इसे बाहर ले गया। यह एक रिवर्स पैच करना होगा, जिसका अर्थ यह रिवर्स में परिवर्तन, जो प्रभावी रूप से सुविधा पुनः नहीं जोड़ेगा लागू होंगे:
git revert <sha of commit that removed the feature>
आप यह सुनिश्चित करें कि आप आसानी से सुविधा बाद में फिर से जोड़ सकते बनाने के लिए चाहते हैं, तो इस दौरान कोड में बदलावों के साथ इसे सिंक में रखते हुए, आप इसे हटाने के तुरंत बाद एक अलग फीचर शाखा बना सकते हैं, और उसके बाद उस शाखा को किसी भी अन्य फीचर शाखा की तरह ही इलाज कर सकते हैं, और master
के खिलाफ इसे बार-बार दबाकर इसे सिंक में रख सकते हैं (या develop
शाखा, यदि आप जिस तरह से करना चाहते हैं), तो आप संघर्ष के रूप में हल करने का समाधान करते हैं।
तो मूल रूप से, आप (यह ज्यादा बात आप एक GitHub Flow या एक Git Flow का उपयोग नहीं होगा, तो कर रहे हैं रणनीति शाखाओं में इस तरह कुछ करने के लिए चाहते हो जाएगा, दोनों सुविधा शाखाओं की अवधारणा है कि अंततः एक main- में विलय हो का उपयोग । मान लिया जाये कि आप बार-बार master
(या develop
के साथ सिंक में saved-feature
रखा है,)
# On master branch
git commit -m "Remove feature X" # Creates commit 1234567...
# Now make feature branch
git checkout -b saved-feature
# Immediately put the feature back in the feature branch
git revert 1234567
# When you want to sync branch with master, just use rebase.
# Rebase allows you to sync frequently, since it doesn't
# leave behind a bunch of merge commits.
#
# From the feature branch:
git rebase master # Resolve any conflicts as needed.
# N commits later, you decide it's time to merge the feature
# back in. You can use fast-forward or non-fast-forward merge,
# it's up to you.
#
# Using fast-forward merge with master checked out (assuming
# feature branch was just rebased onto master):
git merge saved-feature
# Or forcing a merge commit, if that's what you want:
git merge --no-ff saved-feature
हैं कि आप क्या उपयोग है, के रूप में संघर्ष को हल करने: विकास की लाइन सादगी के लिए, मैं GitHub प्रवाह इस उदाहरण में इस्तेमाल करेंगे) आप जाते हैं, आपको फीचर को वापस विलय करने में कोई समस्या नहीं होनी चाहिए।
संदर्भ के लिए
प्रलेखन:
स्रोत
2013-07-10 03:56:22
की [मैं गुरु से एक अलग शाखा के लिए प्रतिबद्ध का एक सेट ले जा सकते हैं कैसे?] संभव डुप्लिकेट (http://stackoverflow.com/questions/1178553/how-can-i-move-a-set-of-commits-from-master-to-a-separate-branch) – RyPeck
कोई उत्तर नहीं, लेकिन ... मैं काम कर रहा हूं दो साल के लिए गिट के साथ और ऐसी स्थिति नहीं देखी। फ़ीचर शाखाओं को केवल 100% तैयार होने पर 'विकासशील'/'मास्टर '/ जो भी अन्य' मुख्य 'शाखा में विलय किया जाना चाहिए। मास्टर में आपका फीचर कोड होने पर कोई मामला नहीं होना चाहिए, लेकिन यह तैयार नहीं है या परीक्षण नहीं किया गया है। – madhead
आप कोड हटाने को ट्रैक कर सकते हैं। आपका काम कितना दानेदार है? क्या आप लोगों को भरोसा है कि आप सुविधा के माध्यम से सुविधा को हटा सकते हैं? रणनीति पर निर्णय लेने के लिए यह महत्वपूर्ण है। – usumoio