टर्मिनल में Git कमिट VIM को खोलता है, लेकिन टर्मिनल पर वापस नहीं जा सकता


209

फिलहाल GitHub सीखने की कोशिश कर रहा है और इस Git अनिवार्य ट्यूटोरियल को nettuts पर कर रहा हूं। मैं कमिट करने के बारे में सबक पर हूं।

शिक्षक टाइप करता है git commitऔर यह VIM को उसके संपादक के रूप में खोलता है (मैं यह भी जानना चाहता हूं कि इसे Sublime Text 2 में कैसे खोला जाए ) इसके अलावा जो भी VIM में खुलता है और मैं 1 लाइन में जोड़ता हूं यह मेरा पहला कमिट है और सेव सेव ।

इसके बाद यह मुझे आउटपुट को डेस्कटॉप पर सहेजने के लिए प्रेरित करता है, ऐसा कुछ जो मैंने उसके स्क्रैंकास्ट में नहीं देखा था। अब मैं अभी भी वीआईएम में हूं और यकीन नहीं है कि 'सामान्य' टर्मिनल पर वापस कैसे जाऊं :(

मैं इसका पता नहीं लगा सका, इसलिए मैंने टर्मिनल से बाहर निकल कर इसे फिर से लॉन्च किया, फिर से कमिट किया और डुप्लिकेट के बारे में कुछ चेतावनी संदेश दिए! सुनिश्चित नहीं हैं कि अगर मैं करने की जरूरत है (E)editवैसे भी या (A)abort

गिट स्थिति

यहां छवि विवरण दर्ज करें

शक्ति

यहां छवि विवरण दर्ज करें

संदेश जब मैं फिर से खोलना और फिर से कमिट करना

यहां छवि विवरण दर्ज करें


3
f आप सिर्फ यह जानना चाहते हैं कि विम को कैसे बचाएं और बाहर निकलें, यह है : wq
guideo

1
यहाँ भी यही समस्या है ... जैसे ही मैं कमिट करने की कोशिश करता हूँ, टर्मिनल किसी तरह का संपादक खोल देता है जिसे मैं छोड़ नहीं सकता। बहुत कष्टप्रद!
कोकोडको

3
@ कोकोडको यस मैं अभी के साथ प्रतिबद्ध हूं git commit -m 'my message', यह है :) यह एक संपादक की आवश्यकता नहीं है, कभी भी 1 का उपयोग करने की आवश्यकता नहीं है, केवल "लाइनर्स" की आवश्यकता है।
लियोन गबन

1
@LeGGan शॉर्ट कमिट मैसेज पहले कमिट के लिए ठीक हैं, लेकिन उन पर से आपको शॉर्ट सब्जेक्ट की तकनीक को अपनाने की कोशिश करनी चाहिए और फिर उस कमिटमेंट में जो हुआ है, उसे डिटेल करना चाहिए।
liamvictor

1
@LeonGaban आप अद्भुत हैं
बॉडी

जवाबों:


368

अपने काम और निकास प्रेस को बचाने के लिए Escऔर फिर :wq(लिखने के लिए और छोड़ने के लिए क्यू)।

वैकल्पिक रूप से, आप दबाकर Escऔर फिर बचाकर बाहर निकल सकते थे:x

चलाने के एक और संपादक सेट करने के लिए export EDITOR=myFavoriteEdiorअपने टर्मिनल पर है, जहां myFavoriteEdiorहो सकता है vi, gedit, subl(उदात्त के लिए) आदि


7
+1 कमांड के अनुक्रम की व्याख्या करने पर और इस प्रक्रिया में कि संपादकों को कैसे स्विच करना है अगर जरूरत है (लेकिन गंभीरता से, कोई भी क्यों vim के अलावा एक संपादक का उपयोग करना चाहेगा :)
लेवेन कीर्सेमेकर्स

15
एनबी एक साधारण :xबचत और विम को छोड़ दें तो यह थोड़ा तेज है :wq;)
ज़ेवियर

1
Te संपादक को स्थायी रूप से सेट कर सकते हैं जिसका आप उपयोग कर सकते हैं: git config --global core.editor myFavoriteEditor
मटका

2
esc कुंजी मेरे लिए कुछ नहीं करता है। यह गुप्त आदेश क्या है, क्या यह 2016 या 1996 है? अतुल्य ...
oyalhi

1
पूरी तरह से काम नहीं करता है। हां मैंने एक प्रतिबद्ध संदेश दर्ज किया। विम चूसता है।
डेव किल्पिंस्की

40

वास्तव में वीआईएम समस्या का जवाब नहीं है, लेकिन आप कमांड लाइन का उपयोग करने के लिए भी प्रतिबद्ध संदेश दर्ज कर सकते हैं:

git commit -m "This is the first commit"

19

आपको सामान्य मोड पर लौटने और या तो के साथ प्रतिबद्ध संदेश को बचाने की आवश्यकता है

<Esc>:wq

या

<Esc>:x

या

<Esc>ZZ

Escसे महत्वपूर्ण रिटर्न आप डालने के लिए मोड सामान्य मोड। :wq, :xया ZZअनुक्रम परिवर्तन लिखते हैं और संपादक बाहर निकालता है।


2
नहीं ... esc कुंजी कुछ नहीं करता है। मैं "मर्ज ब्रांच मास्टर ऑफ ..." में फंस गया हूं। कृपया यह समझाने के लिए एक प्रतिबद्ध संदेश दर्ज करें कि यह मर्ज आवश्यक क्यों है।
कोकोडको

क्या आपने एक प्रतिबद्ध संदेश दर्ज किया ? जब आप दबाते हैं तो क्या होता है <Esc>:wq?
लेवेन केर्सेमेकर्स

2
मेरे मामले में ऐसा कुछ नहीं होता है। यह गुप्त आदेश क्या है, क्या यह 2016 या 1996 है?
इलोहि

1
@ होमो-इरेक्टस - मैंने कुछ 4 साल पहले विम का उपयोग करना शुरू किया था और मेरा एकमात्र खेद है कि मैंने पहले शुरू नहीं किया था। मैं इसे व्यर्थ समय नहीं मानता, आपको इसका प्रयास करना चाहिए। यह आपके पास एक मजबूत सीखने की अवस्था है, लेकिन यह इसके लायक होगा। आदेशों के लिए, मेरे पास जोड़ने के लिए बहुत कुछ नहीं है। टाइप करें <esc>, टाइप करें: टाइप करें x और वह होना चाहिए।
लेवेन केर्सेमेकर्स

@ निष्ठा कभी भी विम
अनातोली यकीमचुक

16

बस vim "सेव एंड लीव" कमांड :wqको ट्रिक करना चाहिए।

Git को किसी अन्य संपादक में खोलने के लिए, आपको Git core.editorसेटिंग को एक कमांड में बदलना होगा, जिसे आप चाहते हैं कि संपादक चलाता है।

git config --global core.editor "command to start sublime text 2"


4
संपादक को उदात्त पाठ पर सेट करने के लिए टिप के लिए धन्यवाद। मैं एक समस्या में भाग गया, हालांकि, मुझे एक --waitझंडा लगाना पड़ा git config --global core.editor "subl --wait":। यह रोकता हैAborting commit due to empty commit message.
एरिक

16

यह आपके प्रश्न के उत्तर में है ...

मैं यह भी जानना चाहूंगा कि इसे उदात्त पाठ 2 में खोलने के बजाय कैसे बनाया जाए

विंडोज के लिए:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

जाँच लें कि sublime_text.exeयदि आवश्यक हो तो पथ सही है और समायोजित करें।

Mac / Linux के लिए:

git config --global core.editor "subl -n -w"

यदि आपको एक त्रुटि संदेश मिलता है जैसे:

त्रुटि: संपादक 'सब-एन-डब्ल्यू' के साथ एक समस्या थी।

के लिए उपनाम बनाएँ subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

फिर से जांचें कि पथ आपकी मशीन के लिए मेल खाता है।

उदात्त पाठ के लिए बस cmd Sविंडो cmd Wको सहेजें और git पर लौटने के लिए बंद करें ।

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