कहें कि मैंने कई काम किए हैं और चेरी को चुनना चाहते हैं जो मैं रिमोट रिपोजिटरी को दबाता हूं। मैं यह कैसे कर सकता हूं (एसीआईआई: सी 1-> सी 2-> सी 3-> सी 4 और मैं सी 2 और सी 4 को धक्का देना चाहता हूं)। रीबेज, रीसेट करने, पुश करने और फिर काम को रीसेट करने के साथ फिर से काम करेगा? (सी 1-> सी 2-> सी 3-> सी 4 => सी 2-> सी 4-> सी 1-> सी 3 => सी 4 => पुश => सी 3 रीसेट करें)। क्या कोई अच्छा रास्ता है?गिट: एक सिंगल प्रतिबद्धता को दबाएं
उत्तर
यदि आपके पास निजी शाखा में आपका काम है, तो आप चेरी निजी शाखा से काम कर सकते हैं और उन्हें आधिकारिक शाखा में लागू कर सकते हैं। इस बिंदु पर अब आप अपने सभी कामों को आधिकारिक शाखा (जो सबसेट जिसे आपने पहले चुना था) पर धक्का दे सकते हैं।
आईआईआरसी, गिट विचारों को काम करने के तरीके के कारण, सी 4 में निहित रूप से सी 3 शामिल है, इसलिए "सी 4 को धक्का देना लेकिन सी 3 नहीं" की अवधारणा गिट (और इसी प्रकार सी 2 के सापेक्ष सी 2) को समझ में नहीं आता है। (this previous question का उत्तर देखें।)
असत्य! सी 4 अपने माता-पिता के रूप में सी 3 संदर्भित करता है, लेकिन दूसरा उत्तर अधिक सही है: आप चेरी चुन सकते हैं इतिहास से बाहर निकल सकते हैं और उन्हें विभिन्न माता-पिता के लिए लागू कर सकते हैं। –
सी 4 की तरह यह अधिक नहीं है कि यह सी 3 में परिवर्तनों को लागू करता है लेकिन सी 4 के बदलाव स्वयं ही हैं। – andho
'सी 4' पर 'गिट चेरी-पिक' का उपयोग करके इसे एक अलग शाखा में लागू करने के लिए नई शाखा पर 'सी 4' नहीं बल्कि 'सी 4', एक अलग (लेकिन समान) प्रतिबद्धता होगी। यदि कोई व्यक्ति बाद में 'सी 4' वाली शाखा में विलय कर लेता है, तो समस्याएं उत्पन्न हो सकती हैं। – Amber
आप देख रहे हैं क्या: http://blog.dennisrobinson.name/push-only-one-commit-with-git/
नोट्स::
git push origin commit-id:master
क्रेडिट को जाता है
- धकेल एक धक्का यह करने से पहले सभी प्रतिबद्ध प्रतिबद्ध (के रूप में एम्बर कहा)। कुंजी आपके काम (
git rebase -i
) को फिर से व्यवस्थित करना है, इसलिए वे हैं जिन्हें आप उन्हें धक्का देना चाहते हैं। - सुझाई गई शाखा + चेरी-पिक विधि (मिडटीबी द्वारा सुझाई गई) भी काम करती है, लेकिन जब आपको आवश्यकता नहीं होती है तो फेंकने वाली शाखाएं क्यों बनाएं।
commit-id
को sha1 होना आवश्यक नहीं है। से पहले सबकुछ धक्का देने के लिए पिछले एन काम करता है,commit-id
के स्थान पर "HEAD ~ N" का उपयोग करें।
यह स्वीकार्य उत्तर होना चाहिए। +1 धन्यवाद। –
$ git push <remote name> <commit hash>:<remote branch name>
# Example:
$ git push origin 2dc2b7e393e6b712ef103eaac81050b9693395a4:master
कृपया अपने उत्तर के साथ कुछ टिप्पणियां जोड़ें इससे अनदेखा करना आसान हो जाएगा ... –
- 1. एक गिट प्रतिबद्धता पूर्ववत करें
- 2. एक गिट बंडल में प्रतिबद्धता
- 3. गिट: दूसरी प्रतिबद्धता
- 4. गिट वसा प्रतिबद्धता
- 5. पिछली गिट प्रतिबद्धता को पुनर्स्थापित करें?
- 6. गिट: विशिष्ट प्रतिबद्धता पुनर्प्राप्त करें
- 7. गिट: सबसे बड़ी प्रतिबद्धता पाएं
- 8. गिट: एक प्रतिबद्धता को रिवर्स-विलय कैसे करें?
- 9. एक गिट मर्ज प्रतिबद्धता को वापस लेना, फिर
- 10. गिट: "शीर्ष पर" एक प्रतिबद्धता को स्थानांतरित करें
- 11. एक विशिष्ट प्रतिबद्धता
- 12. गिट-एसवीएन: एक नई शाखा/टैग बनाएं और दबाएं?
- 13. एक विलय प्रतिबद्धता
- 14. एक सिंगल लाइन
- 15. कुंजी दबाएं कुंजी दबाएं
- 16. गिट: प्रतिबद्धता पर MySQL डेटाबेस निर्यात करें?
- 17. गिट सबमिशन init नवीनतम प्रतिबद्धता खींच नहीं
- 18. गिट कुछ प्रतिबद्धता पर वापस लौटें
- 19. गिट: पिछले और अगले प्रतिबद्धता पर जाएं
- 20. मैं गिट में एक प्रतिबद्धता कैसे उलटा सकता हूं?
- 21. गिट: पहली प्रतिबद्धता कैसे क्लोन करें?
- 22. मैं गिट में एक प्रतिबद्धता का बैकपोर्ट कैसे करूं?
- 23. गिट शाखा एक नई प्रतिबद्धता में भिन्न होती है
- 24. मैं गिट में एक पुरानी प्रतिबद्धता कैसे कर सकता हूं?
- 25. गिट रीसेट - सॉफ्ट और नवीनतम प्रतिबद्धता
- 26. पुरानी गिट प्रतिबद्धता में संशोधन कैसे करें?
- 27. गिट: HEAD को पिछली प्रतिबद्धता पर वापस ले जाएं
- 28. गिट विलय और यह त्रुटि "प्रतिबद्धता को इंगित नहीं करती"
- 29. गिट पर विशिष्ट फ़ाइल पर लगातार प्रतिबद्धता को कैसे रोकें?
- 30. गिट में अनाथ प्रतिबद्धता को कैसे हटाया जाए?
हाँ, आप इतिहास को फिर से लिखने सकते हैं (या आवश्यक इतिहास के साथ अलग शाखा बनाने) और फिर धक्का। यही एकमात्र रास्ता है। –
मैं भी एक ही मुद्दे की तलाश में था। यह संसाधन उपयोगी हो सकता है https://miteshshah.github.io/linux/git/how-to-push-single-commit-with-git/ –