कृपया यह बताने के लिए कि यह मर्ज क्यों आवश्यक है, विशेष रूप से यदि यह एक विषय शाखा में एक अद्यतन अपस्ट्रीम को मर्ज करता है, तो एक प्रतिबद्ध संदेश दर्ज करें


515

मैं गिट का उपयोग कर रहा हूं। मैंने रिमोट रेपो से एक पुल किया और एक त्रुटि संदेश मिला:

कृपया यह बताने के लिए कि यह मर्ज आवश्यक क्यों है,
विशेष रूप से यदि यह एक विषय शाखा में एक अद्यतन अपस्ट्रीम को मर्ज करता है, तो एक प्रतिबद्ध संदेश दर्ज करें ।

मैं एक संदेश टाइप करने और प्रेस करने की कोशिश करता हूं Enterलेकिन कुछ भी नहीं होता है।

मैं अपने संदेश में टाइप किया गया Git / Terminal कैसे बताऊं?

मैं ओएस एक्स पर टर्मिनल का उपयोग कर रहा हूं।


3
ऐसा प्रतीत होता है कि आपका GIT एक पूर्व-कॉन्फ़िगर टेम्पलेट खोलने के लिए कॉन्फ़िगर किया गया है और वह टेम्पलेट डिफ़ॉल्ट संपादक (vi / vim) के माध्यम से खोला जा रहा है।
शुनाय

इस मर्ज को रद्द करें और git pull --rebase का उपयोग करने का प्रयास करें।
अंकुश जैन

3
फॉर्म "शिफ्ट ZZ" समस्या को हल करता है
papacico

जवाबों:


1188

यह Git त्रुटि संदेश नहीं है, यह संपादक है क्योंकि git आपके डिफ़ॉल्ट संपादक का उपयोग करता है।

इसे हल करने के लिए:

  1. प्रेस "मैं" (मैं डालने के लिए)
  2. अपना मर्ज संदेश लिखें
  3. प्रेस "esc" (बच)
  4. लिखना ": wq" (लिखना और छोड़ना)
  5. फिर एंटर दबाएं

7
ठीक है, लेकिन यह मान रहा है कि उसका संपादक है viया vim
गेब्रियल पेट्रोनेला

106
कि हेला जटिल है
कॉनर लेच

92
लॉर्ड आई हेटVi
सोबियाहोलिक

153
यदि यह किसी की मदद करता है, तो आपको यह याद रखने का तरीका यह है कि "i" "इन्सर्ट" के लिए है, "esc" इंसर्शन से बाहर निकलने वाला है, और ": wq" सिर्फ "राइट" और "छोड़" है।
जोश बीम

82
यह। ↓↓ ← as → W → BA
वेस्ली स्मिथ

39

वास्तव में यह एक त्रुटि नहीं है! इसका मतलब है कि आपको इस मर्ज को चिह्नित करने के लिए कुछ संदेश दर्ज करना चाहिए। मेरा OS उबंटू 14.04 है। यदि आप एक ही OS का उपयोग करते हैं, तो आपको निम्नानुसार करने की आवश्यकता है:

  1. कुछ संदेश टाइप करें

  2. CtrlCO

  3. फ़ाइल का नाम टाइप करें (जैसे "मर्ज_फेट्योर 01") और दबाएँ Enter

  4. CtrlX बाहर निकलने के लिए

अब अगर आप .it पर जाते हैं और आपको फ़ाइल "Merge_feature01" मिलेगी, तो यह वास्तव में मर्ज लॉग है।


6
मुझे आश्चर्य है कि किसी को यह कैसे पता चलेगा? यह बहुत अजीब है कि यह कैसे काम करता है। इसका उत्तर देने के लिए धन्यवाद।
एड्रियन कैर

@ScottyBlades पृथ्वी पर क्यों होना चाहिए? प्रश्न को ओएक्सएक्स टैग किया गया है, और यह जवाब चिंता करता है कि उबंट जीआईटी (उपयोग nanoया pico) के लिए एक पूरी तरह से अलग सेटअप कैसे सेट करता है , जो ओएस एक्स सेटअप पर लागू नहीं होता है। यह किसी भी तरह से सामान्य नहीं है और यह कैसे काम करता है, इस बारे में अंतर्दृष्टि प्रदान नहीं करता है, इसलिए @AdrianCarr द्वारा टिप्पणी छोड़ दी गई है। अभी और बेहतर जवाब हैं।
ओलिगोफ़्रेन

27

tl; डॉ। एडिटर को समालोचक या एटम जैसे कुछ अच्छे शब्दों में सेट करें

यहाँ अच्छा है एक संपादक के अर्थ में प्रयोग किया जाता है जिसे आप पसंद करते हैं या अधिक उपयोगकर्ता के अनुकूल पाते हैं

अंतर्निहित समस्या यह है कि Git डिफ़ॉल्ट रूप से एक संपादक का उपयोग करता है जो अधिकांश लोगों के लिए उपयोग करने के लिए बहुत ही अनपेक्षित है: विम। अब, मुझे गलत मत समझो, मुझे विम बहुत पसंद है, और जब आप विम सीखने के लिए एक महीने (एक महीने की तरह) को अलग कर सकते हैं और यह समझने की कोशिश करें कि क्यों कुछ लोगों को लगता है कि विम अस्तित्व का सबसे बड़ा संपादक है, एक तेज़ तरीका है इस समस्या को ठीक करने के लिए :-)

यह स्वीकार किए गए उत्तर की तरह, गुप्त आदेशों को याद करने के लिए नहीं है , बल्कि एक संपादक का उपयोग करने के लिए गिट को कॉन्फ़िगर करना है जिसे आप पसंद करते हैं और समझते हैं! यह वास्तव में इन विकल्पों में से किसी भी विन्यास के रूप में सरल है

  1. git config सेटिंग core.editor(प्रति परियोजना, या विश्व स्तर पर)
  2. VISUALया EDITORवातावरण चर (अन्य कार्यक्रमों के लिए इस काम करता है और साथ ही)

मैं लोकप्रिय संपादकों के एक जोड़े के लिए पहला विकल्प कवर करूँगा, लेकिन GitHub के पास कई संपादकों के लिए एक उत्कृष्ट मार्गदर्शिका है

एटम का उपयोग करने के लिए

अपने डॉक्स से सीधे , इसे एक टर्मिनल में दर्ज करें: git config --global core.editor "atom --wait"

Git सामान्य रूप से संपादक कमांड के समाप्त होने की प्रतीक्षा करता है, लेकिन चूंकि Atom एक पृष्ठभूमि प्रक्रिया को तुरंत शुरू करता है, यह तब तक काम नहीं करेगा, जब तक आप इसे --waitविकल्प नहीं देते।

उदात्त पाठ का उपयोग करने के लिए

एटम मामले के समान कारणों के लिए, आपको उस प्रक्रिया को इंगित करने के लिए एक विशेष ध्वज की आवश्यकता होती है जो इसे पृष्ठभूमि में कांटा नहीं होना चाहिए:

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


विम को एक महीना नहीं लगता। इसमें दो दिन लगते हैं और जब तक आप समय-समय पर आपको एक आसान धोखा शीट देते रहेंगे, तब तक आप इसे कभी नहीं भूलेंगे।
user264431

22

बस करो,

CTRL + X

CTRL + C

यह आपसे फाइल को सेव करने के लिए कहेगा, प्रेस Y, फिर आप कर रहे हैं।


यदि आपका डिफ़ॉल्ट संपादक "पिको" या "नैनो" है तो उपरोक्त टिप्पणियों का उपयोग किया जाना चाहिए यदि आपका डिफ़ॉल्ट संपादक विम है।
जेकाउन

7

यहाँ इसके लिए आपसे एक संदेश मांगा गया है जो भविष्य के संदर्भ के लिए आपके मर्ज से जुड़ता है कि आपने यह मर्ज क्यों किया।

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

इसके बजाय, आप CtrlZकमिट कर सकते हैं और रिटायर कर सकते हैं, लेकिन इस बार इसके बाद उद्धरणों में एक संदेश के साथ "-m" जोड़ें, तो यह आपको उस पृष्ठ के साथ संकेत दिए बिना कर देगा।


3
यह निश्चित रूप से ओपी की समस्या को हल करेगा। git commit -m 'I did blah'
जेम्स एम। लेट

मेरे पास लिनक्स टर्मिनल पर git संस्करण 1.7.11.4 है, और इस तथ्य के बावजूद कि मैं git कमिट -m "मैसेज" या git कमिट --message "मैसेज" देता हूं, फिर भी समय-समय पर एडिटर पॉप अप करके मैसेज करता है। क्या कोई जानता है कि "-m" स्विच को अनदेखा क्यों किया जाता है?
pglpm

4

चूँकि आपकी स्थानीय रिपॉजिटरी आगे कुछ कमिट है, git आपके रिमोट को आपके स्थानीय रेपो में मिलाने की कोशिश करता है। यह मर्ज के माध्यम से संभाला जा सकता है, लेकिन आपके मामले में, शायद आप रिबास की तलाश कर रहे हैं, अर्थात अपनी प्रतिबद्धता को शीर्ष पर जोड़ें। आप इसके साथ कर सकते हैं

git rebase या git pull --rebase

यहाँ एक अच्छा लेख है जो git pull& के बीच के अंतर को समझाता है git pull --rebase

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


0

अपने मर्ज के साथ एंड्रॉइड स्टूडियो टर्मिनल में एक संदेश कैसे जोड़ें। यह मैक उपयोगकर्ताओं के लिए है।

  • एक कदम - प्रेस "मैं"
  • चरण दो - "#" के बाद आपको संदेश दर्ज करें
  • चरण तीन- प्रेस "esc"
  • चरण चार- बहुत नीचे लिखें ": wq"
  • चरण पांच- "एंटर" दबाएं

आप सभी अपने मर्ज के साथ कर रहे हैं। फिर आप एक नई शाखा बनाने या बनाने के बाद या तो अपने स्थानीय स्तर पर काम करना जारी रख सकते हैं।


0

यह Git त्रुटि संदेश नहीं है, यह संपादक git आपके डिफ़ॉल्ट संपादक का उपयोग करता है।

इसे हल करने के लिए:

  1. प्रेस "मैं"
  2. अपना मर्ज संदेश लिखें
  3. प्रेस "esc"
  4. लिखें: "wq"
  5. और एंटर दबाएं

व्याख्या

जिस तरह से आपको यह याद है कि "i" "इन्सर्ट" के लिए है, "esc" इंसर्शन से बाहर निकलने वाला है, और ": wq" सिर्फ "लिखना" और "छोड़ना" है।


0

यह एक त्रुटि नहीं है। आपको इस मर्ज के लिए एक मालिश जोड़ना होगा

इसे हल करने के लिए:

  1. अपनी मालिश करने के लिए "i" दबाएं
  2. अपना संदेश लिखें
  3. प्रेस "esc"
  4. "लिखने: wq" (लिखने और छोड़ने के लिए मालिश और निकास)
  5. एंटर दबाए"

-1

मुझे त्रुटि मिली क्योंकि मैं आपके लिए यह जांचना नया था कि क्या आपने सही सिंटैक्स दर्ज किया है

मैंने एक गलती की और लिखा git commit

और वही त्रुटि मिली

उपयोग git commit -m 'some comment'

और आप पृष्ठ को नहीं देख पाएंगे

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