जब मैं स्क्रीन पर एक मैसेज का इंतजार कर रहा हूं तो मैं Git कमिट को कैसे रोक सकता हूं?


203

मैंने गिट से बैश के भीतर से कमिट करने के लिए कहा है, इसने VI को हमेशा की तरह लाया है।

अब मैं कमिट रद्द करना चाहता हूं, मैं इस बिंदु से कमिट के साथ आगे बढ़ने से कैसे रोकूं?


वर्थ को जोड़ना जो आपको :q!vim से बाहर निकलने के लिए प्रवेश करने से पहले Esc को प्रस्तुत करने की आवश्यकता है ।
M_Merciless

जवाबों:


331

आपके पास दो विकल्प हैं:

  • एक खाली प्रतिबद्ध संदेश प्रदान करें। यदि यह एक नई प्रतिबद्धता है और आपने अभी तक संदेश नहीं सहेजा है, तो आप बस उपयोग कर सकते हैं :q!(बिना बचत के)। यदि आपने पहले ही बचत कर ली है (या आप पिछली कमिट में संशोधन कर रहे हैं), तो बस पूरे लॉग संदेश को हटा दें और फिर से सेव करें। यह विम में ggdG+ के साथ किया जा सकता है :wq

  • एक गैर-शून्य निकास कोड के साथ संपादक से बाहर निकलें। विम में, आप उपयोग कर सकते हैं :cq(एक त्रुटि कोड के साथ छोड़ दें)।

यह ध्यान देने योग्य है कि आप हमेशा अपनी कार्यशील प्रतिलिपि को उस स्थिति में रीसेट कर सकते हैं जिस स्थिति में वह प्रतिबद्ध था git reset HEAD^


95
: cq व्यवसाय है। अगर मैं उपयोग करता हूँ, तो किसी कारण से, जुताई: क्यू!
सेरेक्स

2
git रीसेट HEAD ^ स्थानीय संशोधनों को त्याग देगा
juanmf

2
: q! शायद काम नहीं करता है क्योंकि वहाँ पहले से ही एक पूर्वनिर्धारित संदेश है, आप इसे संपादित कर रहे हैं।
पापीपो

हिचकी: यदि आप git reset HEAD^अधिक के लिए पूछते हैं, तो आपका शेल ^ निरंतरता के रूप में व्याख्या कर सकता है। इस उत्तर के लिए प्रयास करें git reset "HEAD^", git reset HEAD^^या git reset HEAD~1इसके बजाय: stackoverflow.com/questions/14203952/git-reset-asks-more
Jake Stevens-Haas

75
  • :q!जब एक संशोधन में काम नहीं करता है। यह प्रतिबद्ध संदेश को अद्यतन नहीं करता है, लेकिन यह संशोधन को कार्यान्वित करता है :-(
  • :cq पूरी तरह से संशोधन को रद्द कर देता है।

1
काश मैं एक और +1 जोड़ पाता। मैं यहाँ कई बार गया हूँ जब मेरा संशोधन गलत कमिट करता है।
Wyrmwood

8

सारांश में:

  • एक नई कमिट बनाते समय (यानी git commit) का उपयोग करना छोड़ दें :q!
  • जब संशोधन (यानी git commit --amend) प्रतिबद्ध संदेश को हटा दें (केवल पहली कुछ पंक्तियाँ # के साथ शुरुआत नहीं कर रही हैं ) उदाहरण के लिए v को पकड़कर और इसे चुनने के लिए तीर कुंजियों का उपयोग करके और फिर हटाएं दबाएं। परिवर्तन लागू करने के लिए छोड़ो:wq ! यदि आप उपयोग :q!करते हैं तो परिवर्तन खो जाएगा और पिछले प्रतिबद्ध संदेश का उपयोग किया जाएगा।

VIM का उपयोग करते समय इसे छोड़ना दोनों ही मामलों में ठीक है :cq- VIM एक त्रुटि कोड के साथ छोड़ देगा और कमिट निरस्त हो जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.