क्या कोई निर्दिष्ट प्रतिबद्धता से पहले सभी प्रतिबद्धताओं को निकालने का कोई तरीका है और प्रारंभिक के रूप में कार्य करने का कोई तरीका है?विशिष्ट प्रतिबद्धता से पहले प्रतिबद्धता हटाएं
उत्तर
चलो कहते हैं कि नया सबसे पुराना प्रतिबद्ध के हैश एक्स है और हम "oldroot" और "newroot" अस्थायी रूप से उपयोग कर सकते हैं करते हैं:
git checkout -b oldroot X
TREE=`git write-tree`
COMMIT=`echo "Killed history" | git commit-tree "$TREE"`
git checkout -b newroot "$COMMIT"
git rebase --onto newroot oldroot master
# repeat for other branches than master that should use the new initial commit
git checkout master
git branch -D oldroot
git branch -D newroot
git gC# WARNING: if everything's done right, this will actually delete your history from the repo!
यह एक 'newroot' 'oldroot' के रूप में एक ही सामग्री के साथ प्रतिबद्ध पैदा करेगा प्रतिबद्ध, लेकिन किसी भी माता पिता के बिना। फिर, यह सभी अन्य शाखाओं को नई जड़ पर पुनर्जीवित करता है, जो उन सभी के इतिहास में होना चाहिए।
संपादित करें: परीक्षण और तय; थोड़ा बाद में, एक सा
ध्यान दें कि प्रारंभिक प्रतिबद्धता के लिए "हत्या इतिहास" नया प्रतिबद्ध संदेश बन गया है। यदि आप कुछ और चाहते हैं, उदाहरण के लिए मूल संदेश की तरह, बस इसे वहां पाइप करें। –
अधिक आसान समाधान होगा परिष्कृत, मूल रूप से विचार करें अपनी शाखा प्रतिबद्ध मुख्य है और आप एक पहले प्रतिबद्ध था, अब आप भी एक पहले की चोटी पर प्रतिबद्ध था दूसरा।
main->first->second
अब आप बल्कि पहले की चोटी पर से मुख्य के शीर्ष पर दूसरा करना चाहते हैं: तो आप की तरह कुछ है। की तरह कुछ:
main->second->first or main->second
आप बस कर सकते हैं,
git rebase -i main
यह आपको एक इंटरैक्टिव खोल जहां प्रतिबद्ध के क्रम को पुनर्व्यवस्थित किए जाने या निकाले अपनी पसंद के लिए प्रतिबद्ध कर सकते हैं दे देंगे।
- 1. एक विशिष्ट प्रतिबद्धता
- 2. गिट: विशिष्ट प्रतिबद्धता पुनर्प्राप्त करें
- 3. प्रतिबद्धता
- 4. पिछली प्रतिबद्धता
- 5. प्रत्येक प्रतिबद्धता
- 6. आरंभिक प्रतिबद्धता
- 7. प्रत्येक प्रतिबद्धता
- 8. कुछ प्रतिबद्धता
- 9. गिट: दूसरी प्रतिबद्धता
- 10. विभिन्न शाखाओं में विशिष्ट प्रतिबद्धता से शाखा कैसे बनाएं
- 11. एसवीएन शाखा स्तर प्रतिबद्धता
- 12. (गिट): अपस्ट्रीम शाखा से विशिष्ट प्रतिबद्धता कैसे लाएं?
- 13. संशोधित प्रतिबद्धता से फ़ाइल निकालें
- 14. एक विलय प्रतिबद्धता
- 15. Mercurial: हर प्रतिबद्धता
- 16. प्रत्येक प्रतिबद्धता (परिवर्तन)
- 17. गिट वसा प्रतिबद्धता
- 18. जेनकींस सीआई: एसवीएन प्रतिबद्धता
- 19. mysql प्रतिबद्धता और लेनदेन
- 20. पिछली प्रतिबद्धता/विलय
- 21. पहली और अंतिम प्रतिबद्धता
- 22. svn: स्थानीय प्रतिबद्धता
- 23. ऑक्टेटप्रेस पहली प्रतिबद्धता
- 24. गिट भंडार से एक विशिष्ट परिवर्तन हटाएं पूरी तरह से?
- 25. किसी विशिष्ट प्रतिबद्धता पर वापस जाएं, फिर वर्तमान
- 26. एक गिट बंडल में प्रतिबद्धता
- 27. गिट पर विशिष्ट फ़ाइल पर लगातार प्रतिबद्धता को कैसे रोकें?
- 28. सबवर्सन: एक विशिष्ट प्रतिबद्धता को कैसे मर्ज करें
- 29. एसवीएन शाखा प्रतिबद्ध - प्रयोगात्मक प्रतिबद्धता
- 30. एक गिट प्रतिबद्धता पूर्ववत करें
मुझे पता है कि मैंने ऐसा कुछ करने के लिए कहीं एक ट्यूटोरियल देखा है ... यह दिखाता है कि आप एक्स को एक्स पर एक ऐतिहासिक रेपो कैसे समाप्त कर सकते हैं, और फिर एक्स को हेड तक ले जाएं और उनसे एक नया रेपो बनाएं, ऐतिहासिक रेपो तक पहुंचने के तरीके के बारे में एक्स पर एक टिप्पणी के साथ। मुझे अभी यह नहीं मिल रहा है, लेकिन यह संभव है। – Daenyth