मैं पहली प्रतिबद्धता को कैसे रद्द करूं?


130

मैं git initएक ताजा रेपो बनाता था, फिर तीन कमिट करता था। अब मैं वापस जाने और अपनी पहली प्रतिबद्धता में संशोधन करना चाहता हूं, लेकिन अगर मैं git rebase -i HEAD~3इसकी शिकायत करता हूं ! अगर मैं उसी के साथ कोशिश करता हूं HEAD~2तो यह काम करता है लेकिन केवल मुझे पिछले दो कमिट्स को फिर से व्यवस्थित करने देता है।

मैं before प्रतिबद्ध होने से पहले किसी भी तरह के हंगामे ’का संदर्भ कैसे देता हूं या वापस जाकर एक खाली प्रतिबद्ध डालें?


जवाबों:


218

हाल ही में पर्याप्त गिट के साथ आसान तरीका, (यह लंबे समय से बाहर है, इसलिए आपके पास यह होना चाहिए):

git rebase -i --root

दूसरा आसान तरीका, जैसा कि एक टिप्पणी में ट्वलबर्ग ने कहा है , git checkout --orphanनई रूट कमिट करने के लिए सेट अप करने के लिए उपयोग करना है, जिसे आप पुराने कमिट्स के शीर्ष पर कॉपी कर सकते हैं। (यह rebase -i --rootवैसे भी आंतरिक रूप से समाप्त होता है।)


का उपयोग करते हुए git rebase -i --rootमैं त्रुटि मिलती है error: cannot 'fixup' without a previous commitजब छुटकारा पाने के लिए दूसरे के लिए प्रतिबद्ध प्रयास कर (मैं सिर्फ पहली चाहते हैं)
mikemaccana

क्या वास्तव में आप अनुदेश पत्र में संपादन कर रहे हैं? आपके पास शीर्ष पर सबसे पुराने और pickप्रत्येक के लिए कमांड के साथ कमिट की एक सूची होनी चाहिए । दूसरे pick को या तो बदलें squashया fixupनिर्देश पत्र लिखें, अपने संपादक से बाहर निकलें, और गिट को काम करना चाहिए।
torek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.